मुझे अपने ट्रेनर से एक काम मिला। मैं एक मॉडल में दो मॉडल संपादित करना चाहता हूं। उदाहरण के लिए, हमारे पास दो इकाइयां छात्र और पता हैं। नए छात्र भाग में मैं छात्र विवरण और पता दोनों जोड़ना चाहता हूं। रेलवे पर रूबी में मचान के माध्यम से मैं इसे कैसे प्राप्त कर सकता हूं?एक रूप में एकाधिक मॉडल कैसे संपादित करें?
6
A
उत्तर
7
आप accepts_nested_attributes_for और fields_for एक रूप का निर्माण करने के दो बनाने के लिए उपयोग कर सकते हैं एक ही समय में मॉडल, ताकि आप उन्हें भी संपादित कर सकें। इस प्रकार का फॉर्म nested form
कहलाता है।
यहां आपके लिए Nested form के बारे में एक संदर्भ है।
0
हम इस तरह से अधिक मॉडल संपादित कर सकते हैं ..
छात्रों में/edit.rhtml
संपादित छात्र
<%= 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
मुझे मचान के बारे में निश्चित नहीं है, लेकिन अपेक्षित व्यवहार form_for के बजाय form_tag का उपयोग कर हासिल किया जा सकता है।
<%= 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 %>
पैरामीटर तो अच्छी तरह से की तरह
{'student' => {'name' => , 'age' => }, 'address' => {'street' => , 'city' => . . .}}
हैश पर समूहीकृत किया जाएगा तुम दोनों मॉडलों
मैं भी इस के लिए जवाब की जरूरत है अद्यतन करने के लिए पार्स कर सकते हैं जो। – Okky