我有 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 没有被解雇?我的日志中没有看到“在此处提交”。它适用于破坏就好了。