Ho 3 modelli
Azienda
has_many: dipartimenti
Dipartimento
has_many: ruoli
appartiene alla compagnia
Ruolo
appartiene a: dipartimento
Sto cercando di creare una pagina dinamica che prende il nome della società, n numero di reparti che l'utente aggiunge dinamicamente (rendering stesso parziale come per clic del pulsante) e n numero di ruoli all'interno di ciascun dipartimento (rendering stesso parziale come per clic del pulsante). Voglio chiamare come
form_for :company do |f|
= department_partial (reso n volte per utente), contenente il modulo
form_for :department do |f|
= role_partial (reso n volte per utente), contenente il modulo di ruolo
form_for :role do |f|
in modo che quando faccio clic su Salva una volta per chiamare CompaniesController # Create
Mi piacciono i param
{"company" => {"name" => "somename",
"department1" => {"name" => "somename", "role" => [{"name" => "R1"}, {"nome" => "R2"}]},
"department2" => {"name" => "somename", "role" => [{"name" => "R1"}, {"nome" => "R2"}, {"nome" => " R3" }]}}
NOTA
1> Ogni dipartimento può avere gli stessi ruoli ripetuti, ma è distinto dal dipartimento.
2> Nulla viene salvato prima di fare clic su Salva
risposte:
1 per risposta № 1si prega di controllare gemma nested_form
Forse la tua vista sarà simile a questa:
<%= nested_form_for @company do |comp| %>
<!-- pick the company attributes -->
<%= comp.fields_for :departments do |department| %>
<%= department.text_field :name %>
<%= department.fields_for :roles do |role| %>
<!-- Pick your role attributes -->
<% end %>
<% end %>
<% end %>
Guarda questo codice di esempio. questo ti aiuterà :) Controlla i seguenti video su railscast:
http://railscasts.com/episodes/196-nested-model-form-part-1
e
http://railscasts.com/episodes/197-nested-model-form-part-2