यहाँ में accepts_nested_attributes_for का उपयोग कर कैसे नेस्टेड विशेषताओं के लिए आदेश देने के बनाए रखने के लिए माता-पिता मॉडल है:जब एक रेल आवेदन
class Phase < ActiveRecord::Base
...
has_many :type_well_phases
...
end
मैं सभी रिकॉर्ड्स को कॉपी करके बाल तालिका (TypeWellPhases) में नेस्टेड रिकॉर्ड जोड़ता हूं मेरे चरणों (चरण मॉडल) माता-पिता मॉडल के नियंत्रक में टेबल हूँ जिन्हें आप नीचे देख:
class TypeWellsController < ResourceController
...
def new
@new_heading = "New Type Well - Computed"
@type_well = TypeWell.new
initialize_phase_fields
end
private
def initialize_phase_fields
Phase.order("id").all.each do |p|
type_well_phase = @type_well.type_well_phases.build
type_well_phase.phase_id = p.id
type_well_phase.gw_heat_value = p.gw_heat_value
end
end
...
end
मैं यह कर, क्योंकि मैं बच्चों के खेतों जोड़ रहे हैं कि द्वारा एक विशेष क्रम बनाए रखना चाहते हैं। कोड Phase.order ("id") का हिस्सा उस के लिए है क्योंकि चरण तालिका में ये रिकॉर्ड एक विशिष्ट क्रम में हैं।
इस के बाद मैं के रूप में मेरे प्रपत्र आंशिक में नीचे दिखाया गया simple_form_for और simple_fields_for सहायकों का उपयोग करें:
= simple_form_for @type_well do |f|
...
#type_well_phases
= f.simple_fields_for :type_well_phases do |type_well_phase|
= render "type_well_phase_fields", :f => type_well_phase
सब कुछ वांछित के रूप में काम करता है; अधिकांश समय। हालांकि, कभी-कभी इसे सहेजने के बाद फॉर्म में बाल पंक्तियों का क्रम गड़बड़ हो जाता है। इस एप्लिकेशन में ऑर्डर महत्वपूर्ण है इसलिए मैं स्पष्ट रूप से नियंत्रक में निजी विधि में यह आदेश करता हूं।
मैं बाल रिकॉर्ड हटाने के लिए "कोकून" मणि का उपयोग कर रहा हूं। मुझे यकीन नहीं है कि यह आदेश कभी-कभी गड़बड़ क्यों हो जाता है।
इतनी लंबी पोस्ट के लिए खेद है, लेकिन मैं सामने सभी प्रासंगिक विवरण प्रदान करना चाहता था।
किसी भी पॉइंटर्स की सराहना करें।
भारत
अपने उत्कृष्ट स्पष्टीकरण के लिए धन्यवाद। मेरे पास अभी एक फॉलो अप प्रश्न है: आप इसे कैसे जानते थे? मैंने प्रलेखन को पढ़ और पढ़ा और इसे भी नहीं सोचा। दूसरे शब्दों में, मुझे मछली को सिखाएं :) – Bharat
कोई जादू नहीं है, @ भारत। यह सादे दृष्टि में आधिकारिक दस्तावेज में है। Http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for पर जाएं और "या संग्रह का उपयोग करने के लिए" शब्दों पर स्क्रॉल करें। – jdoe
ने मुझे अपना प्रश्न हल करने में मदद की http://stackoverflow.com/questions/13699285/how-to-make-text-fields-for-nested-attributes-in-rails-for-selected-records –