/ / Woking con moduli annidati su binari - ruby-on-rails

Woking con moduli annidati in binari - ruby-on-rails

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 № 1

si 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