有人在Rails中实现了一个after_commit钩子吗?我不是在提交update / create / etc之后寻找基于模型的,我希望能够动态定义一个仅在当前(最顶层)事务通过时才会执行的块:
def remove_file current_transaction.after_commit do FileUtils.rm(file_path) end end
不知道是否已经实现了,如果它将在rails 3.0中?
解决方法
Rails 3提供after_commit / after_rollback回调:
https://github.com/rails/rails/commit/da840d13da865331297d5287391231b1ed39721b
在Rails 1和2中,您可以使用此gem获得相同的功能:https://github.com/freelancing-god/after_commit