diff options
author | Arthur Neves <arthurnn@gmail.com> | 2015-02-13 21:10:53 -0500 |
---|---|---|
committer | Arthur Neves <arthurnn@gmail.com> | 2015-02-24 19:16:28 -0500 |
commit | 7d2a87281c7fc8ecfdf6ab7d6beedc49d166424b (patch) | |
tree | 06a27b66d511e99176c55ea40fb610bc423b1f5f /activerecord/lib/active_record/transactions.rb | |
parent | 4a1bb9d0ce985fd105f930078a733601b29ef8a4 (diff) | |
download | rails-7d2a87281c7fc8ecfdf6ab7d6beedc49d166424b.tar.gz rails-7d2a87281c7fc8ecfdf6ab7d6beedc49d166424b.tar.bz2 rails-7d2a87281c7fc8ecfdf6ab7d6beedc49d166424b.zip |
Add before_commit
[fixes #18903]
Diffstat (limited to 'activerecord/lib/active_record/transactions.rb')
-rw-r--r-- | activerecord/lib/active_record/transactions.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb index e6580c9930..598defce50 100644 --- a/activerecord/lib/active_record/transactions.rb +++ b/activerecord/lib/active_record/transactions.rb @@ -7,6 +7,8 @@ module ActiveRecord included do define_callbacks :commit, :rollback, + :before_commit, + :before_commit_without_transaction_enrollment, :commit_without_transaction_enrollment, :rollback_without_transaction_enrollment, scope: [:kind, :name] @@ -208,6 +210,11 @@ module ActiveRecord connection.transaction(options, &block) end + def before_commit(*args, &block) # :nodoc: + set_options_for_callbacks!(args) + set_callback(:before_commit, :before, *args, &block) + end + # 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 @@ -235,6 +242,11 @@ module ActiveRecord set_callback(:rollback, :after, *args, &block) end + def before_commit_without_transaction_enrollment(*args, &block) # :nodoc: + set_options_for_callbacks!(args) + set_callback(:before_commit_without_transaction_enrollment, :before, *args, &block) + end + def after_commit_without_transaction_enrollment(*args, &block) # :nodoc: set_options_for_callbacks!(args) set_callback(:commit_without_transaction_enrollment, :after, *args, &block) @@ -308,6 +320,11 @@ module ActiveRecord clear_transaction_record_state end + def before_committed! # :nodoc: + _run_before_commit_without_transaction_enrollment_callbacks + _run_before_commit_callbacks + end + # Call the +after_commit+ callbacks. # # Ensure that it is not called if the object was never persisted (failed create), |