Szukałem już około godziny i znalazłem ogromną ilość pytań opisujących, jak dodawać pola do modelu użytkownika Devise. Jednak nie mogłem znaleźć żadnego wyjaśnienia w jasny sposób, jak dodać jeden lub wiele modeli do procesu rejestracji.Szyny Wymyśl rejestrację z dodatkowym modelem
Przy rejestracji Chcę, aby użytkownik wypełnił adres e-mail, hasło, a dodatkowo mój model klienta, model firmy i model adresu (tak, że mam wszystkie informacje potrzebne do prawidłowego działania aplikacji internetowej).
Moje modele są jak ten
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
Myślę, że jedynym sposobem, aby to zrobić, to stworzyć własną RegistrationsController więc mogę zrobić @client = Client.new
a następnie zrobić to moim zdaniem:
<%= 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 %>
Powodem muszę go do pracy w ten sposób ponieważ mam wielu użytkowników, którzy mogą reprezentować tego samego klienta (i dlatego potrzebują dostępu do tych samych danych). Mój klient jest właścicielem wszystkich danych w aplikacji i dlatego musi zostać utworzony, zanim aplikacja będzie mogła zostać użyta.