私はafter_commitを次のように設定しています。
class MyModel < ActiveRecord::Base
after_commit { Rails.logger.info ("commit here") }
# ...
end
次に、コールバックを発生させることになっているトランザクション内に、コールバックを発生させないupdate_allをラップします。
MyModel.transaction do
MyModel.update_all(col: 'awesome')
end
after_commitが起動されないのはなぜですか?ログに「ここでコミット」が表示されません。それはうまく破壊するために働きます。