モデルの変更値や差分を取得する

モデルの変更状態を知りたいときってありませんか? 2年前くらいに差分を求める汚いコードを書いた記憶があったのですが、まさかActiveRecordに実装されていたとは…ねぇ。

# Map of changed attrs => [original value, new value].
person.changes # => {}
person.name = 'bob'
person.changes # => { 'name' => ['bill', 'bob'] }

他にもこれ系のメソッドがあるので各自調べてみてください。