An ActiveRecord/Rails library to add
after_rollback callbacks. These callbacks are focused on the transactions, instead of specific model actions. This is beneficial in situations where you are doing asynchronous processing and need committed objects.
gem install after_commit --source http://gemcutter.org
The following callbacks are provided:
You can use these just like you would any other callback:
class Article < ActiveRecord::Base after_commit :method_to_call_after_commit # ... private def method_to_call_after_commit # Do something knowing that the transaction is committed. end end
This code first appeared in a blog post by Eli Miller, and was then included in Thinking Sphinx by Pat Allan, with modifications from Joost Hietbrink. The code was then put on GitHub as a plugin by Nick Muerdter, and many people forked and added their own contributions.
This version (maintained by Pat Allan) includes the following patches:
- Callbacks for specific types of actions (create, update, destroy) (DeLynn Berry)
- Fixes to extra callbacks (Xavier Shay)
- Thread-safety (Dmitry Galinsky)
- after_rollback callback (Justin Balthrop)
- Test environment fix (Pivotal Labs)
- Scoping callbacks to specific connections (Mat Brown)
- before_* callbacks (Trotter Cashion)
- Gemspec and extended tests, works as a plugin, doesn’t load ActiveRecord hooks twice, doesn’t add Test environment hook automatically. (David Yip)