2013-02-26 7 views
18

aşağıdaki hatayı alıyorum içindeBu belirli günlerde düzgün çalıştırılabilir</p> <pre><code>write_attribute(:value, new_value) </code></pre> <p>bu hattan, raylar 3.

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' 

dondurulmuş Hash değiştiremez. Ancak, şimdi yukarıdaki hata ile sürekli olarak başarısız. Bunun için çözüm denedim ama hiçbir şey benim için çalışmıyor.

+2

nesne yok edilir? – apneadiving

+0

evet, bazı nesneler yok olabilir. –

+0

sonra cevabınız var – apneadiving

cevap

29

Açıklamalarda açıklandığı gibi, yok edilen nesnelerdeki öznitelikleri güncelleyemezsiniz. gibi bir şeyle

Kontrol:

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

Benim için iyi çalışıyor. Ancak, koşul başarısız olursa, yukarıdaki hata geri dönmelidir. Bunu nasıl aştım? \ –

+0

Bunun neden olabileceği başka bir neden göremiyorum – apneadiving

+1

Elbette bir Model.destroyed var mı? yöntem, bilmeliydim. –

İlgili konular