2011-02-18 18 views
14

मैं एक बहु परत नेस्टेड रूपनेस्टेड प्रपत्र एक ट्रिगर 'नहीं बड़े पैमाने पर असाइन संरक्षित गुण चेतावनी सकते हैं

 
User->Tasks->Prerequisites 

मिल गया है और एक ही रूप

 
User->Tasks->Location 

में स्थान प्रपत्र ठीक काम करता है , अब मैं वर्तमान कार्य को पूर्वापेक्षाएँ निर्दिष्ट करने की कोशिश कर रहा हूं। पूर्वापेक्षाएँ एक task_id है: full_task फ़ील्ड में संग्रहीत।

जब मैं फ़ॉर्म सबमिट करेंगे, मैं निम्न त्रुटि आउटपुट में उपयोगकर्ता में प्रत्येक कार्य के लिए

 
WARNING: Can't mass-assign protected attributes: prerequisite_attributes 

एक चेतावनी मिलती है।

मैं इस से संबंधित अन्य सभी सवालों के माध्यम से चला गया है, यह सुनिश्चित करना कि क्षेत्र का नाम: completed_task सही ढंग से संदर्भित किया जा रहा है,

अपने मॉडल को attr_accessible जोड़ने (यह पहले से ही वहाँ था और मैं इसे बढ़ाया गया)।

मुझे यकीन नहीं है कि मुझे और क्या करना है।

मेरे मॉडल की तरह

 
class Task < ActiveRecord::Base 
    attr_accessible :user_id, :date, :description, :location_id 

    belongs_to :user 
    has_one :location 
    accepts_nested_attributes_for :location 
    has_many :prerequisites 
    accepts_nested_attributes_for :prerequisites 
end 

class Prerequisite < ActiveRecord::Base 
    attr_accessible :completed_task 

    belongs_to :task 
end 

रूप formtastic का उपयोग करता है देखने के लिए, और मैं

 
<%= f.semantic_fields_for :prerequisites do |builder3| %> 
    <%= render 'prerequisite_fields', :f=>builder3 %> 
<% end %> 

--- _prerequisite_fields.html.erb ----- 
< div class="nested-fields" > 
    <%= f. inputs:completed_step %> 
</div> 

कोई सुझाव के माध्यम से फार्म सहित हूँ?

+0

+1 इस प्रश्न पूछने के लिए, मैं वही चीज़ ढूंढ रहा था! – weltschmerz

उत्तर

26

जोड़ें: prerequisite_attributes को जन-असाइन

attr_accessible :user_id, :date, :description, :location_id, :prerequisite_attributes

हो जाना चाहिए कि आप आरंभ क्रम में attr_accessible करने के लिए।

+1

yup, उसने ऐसा किया। क्या यह अनुशंसित तरीका है? मुझे अपने अन्य घोंसले के रूप में इसकी आवश्यकता नहीं लगती थी। पहले मैंने जोड़ा था: prerequisites_attributes पूर्वापेक्षाएँ मॉडल में, जो मुझे लगता है कि मेरी गलती – pedalpete

+0

हाँ, जब भी आपने अपने फॉर्म में संसाधनों को घोंसला दिया है, तो आप पैरामीटर को संसाधन_एट्रिब्यूट्स के हैश के रूप में पास करते हैं। यह परिभाषा द्रव्यमान द्वारा परिभाषित किया गया है, इसलिए आपको इसे attr_accessible में शामिल करना होगा। – jtesch