h1. after_commit An ActiveRecord/Rails library to add @before_commit@, @after_commit@, @before_rollback@ and @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. h2. Installation <pre><code>gem install after_commit --source http://gemcutter.org</code></pre> h2. Usage The following callbacks are provided: * before_commit * before_commit_on_create * before_commit_on_update * before_commit_on_destroy * after_commit * after_commit_on_create * after_commit_on_update * after_commit_on_destroy * before_rollback * after_rollback You can use these just like you would any other callback: <pre><code>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</code></pre> h2. Credits This code first appeared in a blog post "by Eli Miller":http://elimiller.blogspot.com/2007/06/proper-cache-expiry-with-aftercommit.html, and was then included in "Thinking Sphinx":http://ts.freelancing-gods.com by "Pat Allan":http://freelancing-gods.com, with modifications from Joost Hietbrink. The code was then "put on GitHub as a plugin":http://github.com/GUI/after_commit 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":http://delynnberry.com/) * Fixes to extra callbacks ("Xavier Shay":http://rhnh.net/) * Gemspec and extended tests ("David Yip":http://github.com/yipdw) * Thread-safety ("Dmitry Galinsky":http://dima-exe.ru/) * after_rollback callback ("Justin Balthrop":http://github.com/ninjudd) * Test environment fix ("Pivotal Labs":http://pivotalblabs.com/) * Scoping callbacks to specific connections ("Mat Brown":http://outofti.me/) * before_* callbacks ("Trotter Cashion":http://trottercashion.com/)