Ho cercato per circa un'ora e ho trovato un'enorme quantità di domande che descrivono come aggiungere campi al modello utente di Devise. Tuttavia non sono riuscito a trovare nulla che spiegasse in modo chiaro come aggiungere uno o più modelli al processo di registrazione.Rails Devia registrazione con un modello aggiuntivo
Al momento della registrazione desidero che l'utente compili un indirizzo e-mail, una password e inoltre il mio modello cliente, modello di società e modello di indirizzo (quindi ho tutte le informazioni necessarie per l'esecuzione dell'applicazione web).
I miei modelli sono come questo
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
Credo che l'unico modo per farlo è quello di creare il mio RegistrationsController così posso fare @client = Client.new
e poi fare questo a mio avviso:
<%= 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 %>
La ragione per cui ho bisogno di lavorare in questo modo è perché ho più utenti che possono rappresentare lo stesso client (e quindi hanno bisogno di accedere agli stessi dati). Il mio cliente possiede tutti i dati nell'applicazione e quindi deve essere creato prima che l'applicazione possa essere utilizzata.