मैं रेल में एक नेस्टेड मॉडल बना रहा हूं, लेकिन मैं नियंत्रक में नेस्टेड मॉडल में फ़ील्ड जोड़ना चाहता हूं। मैं hidden_field_tag का उपयोग नहीं कर रहा हूं क्योंकि इसे छेड़छाड़ की जा सकती है।रेल में पैराम हैश को संशोधित करना
Parameters: {"dummy"=>{"users_attributes"=>{"0"=>{"email"=>"[email protected]", "id"=>"", "_destroy"=>"false"}, "1"=>{"email"=>"[email protected]", "id"=>"", "_destroy"=>"false"}}}, "commit"=>"Create Dummy"}
क्या मैं चाहता हूँ प्रत्येक user_attributes companyid कहा जाता है के तहत एक क्षेत्र होने के लिए वहाँ के लिए है:
यहाँ मेरी पैरामीटर हैश है। मान लीजिए कि मैं "कंपनी" होने के लिए companyid चाहता था चलो, तो मैंने सोचा था कि यह काम करेगा:
len = params["dummy"]["users_attributes"].size
counter = 0
while counter < len
params["dummy"]["users_attributes"][counter]["companyid" => "company"]
counter = counter + 1
end
लेकिन, मुझे मिल "अपरिभाषित विधि` [] 'शून्य के लिए: NilClass "थोड़ी देर में पहली पंक्ति के लिए त्रुटि पाश। मुझे बिल्कुल यकीन नहीं है क्यों।
क्या कोई मेरी मदद कर सकता है ताकि मैं पैरा हैश को संशोधित कर सकूं?
संपादित करें: तो, आखिरकार, मैंने इसे समझ लिया। मैंने वास्तव में किसी भी समाधान का बिल्कुल उपयोग नहीं किया था। सबसे पहले, मैंने कंपनी के लिए एक छुपा_फील्ड टैग खाली होने के लिए सेट किया है। फिर, मेरे नियंत्रक में मैंने रखा:
params["dummy"]["users_attributes"].each do |key, val|
params["dummy"]["users_attributes"][key]["companyid"] = "company"
end
सबसे सुरुचिपूर्ण कोड नहीं है, लेकिन यह काम करेगा।
मैं आपको चेक दे रहा हूं क्योंकि छिपे हुए क्षेत्रों की गहराई से चर्चा में मुझे समाधान का पता लगाने की अनुमति दी गई है। धन्यवाद! – NielMalhotra
मुझे शुद्धता में क्या कमी है, मैं verbosity में बनाओ। मुझे जावा प्रोग्रामर होना चाहिए था! (ओह, रुको, मैं था)। तो, समाधान क्या _was_ है? –
यह मूल पोस्ट के संपादन में है: f.hidden_field: formid में companyid और फिर ऊपर कोड स्निपेट – NielMalhotra