2013-02-26 41 views
18

मैं निम्न त्रुटि हो रही है में जमे हुए हैश संशोधित नहीं कर सकते,इस लाइन</p> <pre><code>write_attribute(:value, new_value) </code></pre> <p>यह कुछ दिनों के लिए ठीक से चलाया जा सकता है से rails3

can't modify frozen Hash 
/home/.rvm/gems/[email protected]/gems/activerecord-3.2.6/lib/active_r 
ecord/attribute_methods/write.rb:38:in `[]=' 
/home/.rvm/gems/[email protected]/gems/activerecord-3.2.6/lib/active_r 
ecord/attribute_methods/write.rb:38:in `write_attribute' 

। लेकिन, अब यह उपर्युक्त त्रुटि के साथ लगातार विफल रहता है। मैंने इसके लिए समाधान की कोशिश की लेकिन मेरे लिए कुछ भी काम नहीं किया।

+2

वस्तु नष्ट हो जाता है? – apneadiving

+0

हां, कुछ वस्तुएं नष्ट हो सकती हैं। –

+0

तो आपके पास जवाब है – apneadiving

उत्तर

29

जैसा कि टिप्पणियों में बताया गया है, आप नष्ट वस्तुओं पर विशेषताओं को अपडेट नहीं कर सकते हैं।

की तरह कुछ के साथ की जांच:

write_attribute(:value, new_value) unless destroyed? 
+0

यह मेरे लिए ठीक काम कर रहा है। लेकिन, यदि स्थिति विफल रहता है तो उपर्युक्त त्रुटि वापस आनी चाहिए। मैं इसे कैसे दूर करता हूं? \ –

+0

मुझे ऐसा कोई अन्य कारण नहीं दिख रहा है कि यह क्यों हो सकता है – apneadiving

+1

बेशक वहाँ एक मॉडल.destroyed है? विधि, मुझे जाना चाहिए था। –