2013-02-26 3 views
18

Я получаю следующее сообщение об ошибке,не может изменить замороженную Hash в 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' 

от этой линии

write_attribute(:value, new_value) 

Это может быть запущен должным образом на определенные дни. Но теперь он терпит неудачу с превышенной ошибкой. Я попробовал решение для этого, но ничего не работает для меня.

+2

уничтожается объект? – apneadiving

+0

Да, некоторые объекты могут быть уничтожены. – 2013-02-26 11:28:55

+0

, то у вас есть ответ – apneadiving

ответ

29

Как поясняется в комментариях, вы не можете обновлять атрибуты на уничтоженных объектах.

Проверьте что-то вроде:

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

Его работа хорошая для меня. Но если условие терпит неудачу, вышеуказанная ошибка должна возвратиться. как я это преодолею? \ – 2013-02-26 12:02:13

+0

Я не вижу никакой другой причины, почему это может случиться – apneadiving

+1

Конечно, есть Model.destroyed? метод, я должен был знать. –

Смежные вопросы