「Ruby on Rails」カテゴリーアーカイブ

Railsでmodelを更新する前に変更内容を知る方法

model.changed?  変更されてるかどうか。
model.changed   変更されているattribute名の配列。
model.changes   変更されているattribute名前と値のハッシュ。値は変更前更後の値を配列で。
model.attr_changed?      attrが変更されているかどうか。
model.attr_was           attrの変更前の値。変更されてなかったら元の値。
model.attr_change        attrの変更前後の値の配列。変更されてなかったらnil。
model.attr_will_change!  attrを変更することを明示。

Railsでmodelを更新する前に変更内容を知る方法 - 医者を志す妻を応援する夫の日記

Module: ActiveRecord::Dirty

A copy of XX has been removed from the module tree but is still active!

A copy of XX has been removed from the module tree but is still active! - Ruby Forum
development 環境の場合にのみ発生する。
とりあえず、config/enviroments/development.rbで、

config.cache_classes = true

にすれば回避できる。
(その代わり、コードを変更したら、developmentモードの場合もWebサーバの再起動が必要になる。)