Ich habe jetzt etwa eine Stunde gesucht und eine immense Menge an Fragen gefunden, die beschreiben, wie Felder zum Devise-Benutzermodell hinzugefügt werden. Ich konnte jedoch keine finden, die klar erklären, wie man ein oder mehrere Modelle zum Registrierungsprozess hinzufügt.Rails Devise Registrierung mit einem zusätzlichen Modell
Bei der Registrierung möchte ich, dass der Benutzer eine E-Mailadresse, ein Passwort und zusätzlich mein Kundenmodell, Firmenmodell und Adressmodell ausfüllt (damit ich alle Informationen, die die Webapplikation benötigt, richtig ausführen kann).
Meine Modelle sind wie diese
user.rb
class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable attr_accessible :email, :password, :password_confirmation, :remember_me, :client belongs_to :client end
client.rb
class Client < ActiveRecord::Base attr_accessible :bankaccount, :email, :logo, :mobile, :phone, :website has_many :users has_one :company has_one :address accepts_nested_attributes_for :company, :address end
denke ich, der einzige Weg, dies zu tun, ist meine eigene RegistrationsController zu schaffen, so kann ich @client = Client.new
tun und tun dies dann meiner Meinung nach:
<%= f.simple_fields_for @client do |ff| %> <%= f.simple_fields_for :company do |fff| %> <% field_set_tag t(:company) do %> <%= ff.input :name %> <% end %> <% end %> <%= f.simple_fields_for :address do |fff| %> //address inputs <% end %> <% end %> <fieldset> <legend><%= t(:other) %></legend> // other inputs </fieldset> <% end %>
Der Grund, warum ich es brauche diese Art und Weise zu arbeiten liegt daran, dass ich mehrere Benutzer habe, die denselben Client repräsentieren können (und somit auf dieselben Daten zugreifen müssen). Mein Client besitzt alle Daten in der Anwendung und muss deshalb erstellt werden, bevor die Anwendung verwendet werden kann.