2012-10-31 23 views
6

Eğitmenimden bir görev aldım. Bir formda iki modeli düzenlemek istiyorum. Örneğin, iki öğeli öğrenci ve adresimiz var. Yeni öğrenci bölümünde hem öğrenci detaylarını hem de adresi eklemek istiyorum. Bunu raylardaki yakuttaki iskele ile nasıl başarabilirim? ikisini oluşturmak için Böyle birden modellerini düzenleyebilirTek bir formda birden fazla model nasıl düzenlenir?

+0

güncellemek için ayrıştırmak hangi

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

gibi bir karma gruplara ayrılacaktır. – Okky

cevap

0

.. öğrencilerde

/edit.rhtml

Düzenleme Öğrenci

<%= 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

İskele hakkında emin değilim, ancak beklenen davranış form_for yerine form_tag kullanılarak sağlanabilir.

<%= 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 %> 

parametreler sonra güzel ben de bunun için cevap gerek her iki model