Method: ActiveRecord::Transactions::ClassMethods#after_commit
- Defined in:
- lib/active_record/transactions.rb
#after_commit(*args, &block) ⇒ Object
This callback is called after a record has been created, updated, or destroyed.
You can specify that the callback should only be fired by a certain action with
the :on option:
after_commit :do_foo, :on => :create
after_commit :do_bar, :on => :update
after_commit :do_baz, :on => :destroy
Also, to have the callback fired on create and update, but not on destroy:
after_commit :do_zoo, :if => :persisted?
Note that transactional fixtures do not play well with this feature. Please
use the test_after_commit gem to have these hooks fired in tests.
226 227 228 229 230 231 232 233 |
# File 'lib/active_record/transactions.rb', line 226 def after_commit(*args, &block) = args.last if .is_a?(Hash) && [:on] [:if] = Array.wrap([:if]) [:if] << "transaction_include_action?(:#{[:on]})" end set_callback(:commit, :after, *args, &block) end |