gas*_*ard 7 transactions ruby-on-rails
有人after_commit在Rails中实现了一个钩子吗?在更新/创建/等提交后,我不是在寻找基于模型的模型,我希望能够动态定义仅在当前(最顶层)事务通过时才会执行的块:
def remove_file
current_transaction.after_commit do
FileUtils.rm(file_path)
end
end
Run Code Online (Sandbox Code Playgroud)
不知道是否已经实现了,如果它将在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
在 Rails 3.0 中您不会看到after_commit,至少现在还不会。您可以应用补丁并查看它是否得到核心团队的批准,但我怀疑它会。此功能在 Rails 核心之外的插件中仍然具有更多功能。
你可以试试这个插件:
http://github.com/GUI/after_commit