Ruby on rails can';t修改rails3中冻结的哈希

Ruby on rails can';t修改rails3中冻结的哈希,ruby-on-rails,hash,Ruby On Rails,Hash,我得到以下错误 can't modify frozen Hash /home/.rvm/gems/ruby-1.9.3-p327@ui/gems/activerecord-3.2.6/lib/active_r ecord/attribute_methods/write.rb:38:in `[]=' /home/.rvm/gems/ruby-1.9.3-p327@ui/gems/activerecord-3.2.6/lib/active_r ecord/attribute_methods/writ

我得到以下错误

can't modify frozen Hash
/home/.rvm/gems/ruby-1.9.3-p327@ui/gems/activerecord-3.2.6/lib/active_r
ecord/attribute_methods/write.rb:38:in `[]='
/home/.rvm/gems/ruby-1.9.3-p327@ui/gems/activerecord-3.2.6/lib/active_r
ecord/attribute_methods/write.rb:38:in `write_attribute'
从这一行

write_attribute(:value, new_value)

这可以在某些天内正常运行。但是,现在它由于上述错误而不断失败。我尝试了这个解决方案,但没有任何效果。

如评论中所述,您无法更新已销毁对象的属性

请检查以下内容:

write_attribute(:value, new_value) unless destroyed?

对象是否已销毁?是的,某些对象可能会被销毁。然后您有了答案您无法更新已销毁对象的属性。在你做你的东西之前,你需要检查它是否被破坏了。它对我来说很好用。但是,如果条件失败,则必须返回上述错误。我是如何克服这一点的?\我看不出有任何其他原因可以解释为什么会发生这种情况。当然有一个模型。被破坏了吗?方法,我早该知道的。