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?
6
A
cevap
7
Sen accepts_nested_attributes_for ve fields_for bir form oluşturmak için kullanabileceğiniz Aynı zamanda modeli de düzenleyebilirsiniz. Bu tür bir form nested form
olarak adlandırılır.
Nested form, için size bir referans sunulmuştur.
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
güncellemek için ayrıştırmak hangi
gibi bir karma gruplara ayrılacaktır. – Okky