aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/transactions.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-02-01 13:52:50 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2015-02-01 13:55:16 -0800
commitda8de9114b41618322dde17c35b891ade46751fe (patch)
tree801589fbaa9f58626b13c20652af4691379f49ba /activerecord/lib/active_record/transactions.rb
parente87ff501932eb1baecafcca64518e3763597163e (diff)
downloadrails-da8de9114b41618322dde17c35b891ade46751fe.tar.gz
rails-da8de9114b41618322dde17c35b891ade46751fe.tar.bz2
rails-da8de9114b41618322dde17c35b891ade46751fe.zip
push add to transaction logic down to the instance
the transaction object shouldn't know so much about active record objects, so let's push the conditionals in to the instance.
Diffstat (limited to 'activerecord/lib/active_record/transactions.rb')
-rw-r--r--activerecord/lib/active_record/transactions.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb
index 99b3b5c245..609c395cb6 100644
--- a/activerecord/lib/active_record/transactions.rb
+++ b/activerecord/lib/active_record/transactions.rb
@@ -318,7 +318,11 @@ module ActiveRecord
# Add the record to the current transaction so that the +after_rollback+ and +after_commit+ callbacks
# can be called.
def add_to_transaction
- self.class.connection.add_transaction_record(self)
+ if has_transactional_callbacks?
+ self.class.connection.add_transaction_record(self)
+ else
+ set_transaction_state(self.class.connection.transaction_state)
+ end
remember_transaction_record_state
end