diff options
author | Arthur Nogueira Neves <arthurnn@gmail.com> | 2015-02-24 19:25:11 -0500 |
---|---|---|
committer | Arthur Nogueira Neves <arthurnn@gmail.com> | 2015-02-24 19:25:11 -0500 |
commit | 27ce16aa9b348f32d866a697e1dd6cb061ce0ed2 (patch) | |
tree | b0676474e5a8018f31233de49a6415dd61edfadf /activerecord/lib/active_record/connection_adapters | |
parent | f4bee7ecbfd664a9268ae8a6cdf3deabf0ed74e4 (diff) | |
parent | 45755135fe9669d1ba3c8567c517559a6a291304 (diff) | |
download | rails-27ce16aa9b348f32d866a697e1dd6cb061ce0ed2.tar.gz rails-27ce16aa9b348f32d866a697e1dd6cb061ce0ed2.tar.bz2 rails-27ce16aa9b348f32d866a697e1dd6cb061ce0ed2.zip |
Merge pull request #18936 from arthurnn/txn_callbacks
Spike on new transaction callbacks
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/transaction.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb index 11440e30d4..3a1e4a4a88 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb @@ -77,6 +77,10 @@ module ActiveRecord @state.set_state(:committed) end + def before_commit_records + records.uniq.each(&:before_committed!) + end + def commit_records ite = records.uniq while record = ite.shift @@ -159,13 +163,15 @@ module ActiveRecord def commit_transaction inner_transaction = @stack.pop - inner_transaction.commit if current_transaction.joinable? + inner_transaction.commit inner_transaction.records.each do |r| r.add_to_transaction end else + inner_transaction.before_commit_records + inner_transaction.commit inner_transaction.commit_records end end |