ActiveRecordでデータが変更されているかチェックする

RailsMLで便利そうな機能があったのでメモ

2.1.1 以降なら以下のような感じで調べられると思います。

user = User.first
=> #<User id: 1, name: "foo">
user.changed?
=> false
user.name = "bar"
=> "bar"
user.changed?
=> true
user.name_was
=> "foo"
user.changes
=> {"name"=>["foo", "bar"]}
user.name_change
=> ["foo", "bar"]
user.save
=> true
user.changed?
=> false