2012-10-31 15 views
6

bekam ich eine Aufgabe von meinem Trainer. Ich möchte zwei Modelle in einer Form bearbeiten. Zum Beispiel haben wir zwei Einheiten Schüler und Adresse. Im neuen Studententeil möchte ich sowohl Studentendetails als auch Adresse hinzufügen. Wie kann ich das durch ein Gerüst in Rubin auf Schienen erreichen?Wie mehrere Modelle in einer Form bearbeiten?

+0

ich auch für diese Antwort muss aktualisiert werden kann analysieren. – Okky

Antwort

0

Wir können die mehrere Modelle wie diese bearbeiten ..

in Studenten/edit.rhtml

Schüler bearbeiten

<%= error_messages_for :student %> 

<%= start_form_tag :action => 'update', :id => params[:id] %> 


<p> 
    Student Name: 
    <%= text_field :student, :name %> 
    </p> 

<h2>Address</h2> 
    <% for @address in @student.addresses %> 
    <%= error_messages_for :address %> 
    <% fields_for "address[]" do |f| %> 
    <p><%= f.text_field :name %></p> 
    <% end %> 
    <% end %> 

<p><%= submit_tag 'Update' %></p> 
    <%= end_form_tag %> 
0

Ich bin nicht sicher über Gerüste, aber das erwartete Verhalten kann durch die Verwendung form_tag statt form_for erreicht werden.

<%= form_tag :url => , :html => {:id=> , :method => , :class => ""} do %> 
    <% text_field_tag <id>, <default_value>, :name=>"student[name]" %> 
    <% text_field_tag <id>, <default_value>, :name=>"student[age]" %> 
    <% text_field_tag <id>, <default_value>, :name=>"address[street]" %> 
    <% text_field_tag <id>, <default_value>, :name=>"address[city]" %> 
    <% text_field_tag <id>, <default_value>, :name=>"address[state]" %> 
    <% text_field_tag <id>, <default_value>, :name=>"address[country]" %> 
    <%= submit_tag 'save' %> 
<% end %> 

die params wird dann schön in einem Hash wie

{'student' => {'name' => , 'age' => }, 'address' => {'street' => , 'city' => . . .}} 

gruppiert werden, die Sie beide Modelle

Verwandte Themen