この記事で伝えたいこと
単純にafter_createとafter_updateがまとまったのがafter_commitというわけではないよ、ということ
経緯
実装でafter_create_commitが宣言されていて、
「あ、これと同じようなことをupdateでもやりたいから、下にafter_updateしちゃえ」
ってやろうとしたら、どうやらrailsガイドに注意書きが
どうやらオーバーライドされてしまうらしい。
ということでじゃあ、after_commitでまとめるかーって単純な発想になったのだけど、そもそもこれら、実行されるタイミングが違うのです。
DBに保存(commit)される前か後という大きな違い
使えるメソッドがまず変わってきます。
DB保存後はattrbutes_wasみたいなのが使えないです。
この記事のような。
https://qiita.com/htz/items/56798d53ec5988733fc6
commit内で条件分岐するときや判定が必要な時は気をつけましょう。
createとupdateをまとめるときはafter_commitにまとめるのはいいと思うのですが
まとめた後のことも考えた方が良さそうです。。。。