model.changesで強制的に変更したことにする方法
RailsのActiveModelのDirtyでは変更前、変更後、変更したかなどモデルクラスの新旧状態が取れる。
http://qiita.com/kakkunpakkun/items/b286f789ca8590104ad1
このdirtyを使って変更してないけど変更したことにしたい(observerを再実行したい時とか)に使える技
1 2 3 4 5 6 7 8 9 10 |
|
属性名_will_change!で新旧に同じ値が設定される。
なんでこんなことやりたかったかっていうとobserverでuserのnameの値が変更されたらapiを叩く処理を書いていたのだけど、急遽全件apiを再実行する必要があり強制的にnameが変更されたことにしたかったため調べたらあったというお話