レコード変更前と変更後の値を比較したい
Railsで開発していて、レコード変更前と変更後の値を比較したい実装が出てきて、どうやろうかなーと思ったらprevious_changes
という便利なメソッドが用意されていました。
使い方
Hogeというテーブルのnameカラムに'変更前'という文字列が格納されているとします。
@hoge = Hoge.find(1)
@hoge.update("name = '変更後'")
@hoge.previous_changes
# {"name"=>['変更前', '変更後'], "updated_at"=>[Wed, 13 Jun 2018 14:12:50 JST +09:00, Wed, 13 Jun 2018 14:13:42 JST +09:00]}
どのカラムにどういった変更が入ったかを知るのに便利ですね。