aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/transactions.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-04-14 17:51:27 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-04-14 20:55:46 +0900
commit533dd8a681a3ea7d12acdfc6a2d6a95891282b49 (patch)
treeb22773b8adf3d7b4ebcb93d25c38f38d676193cb /activerecord/lib/active_record/transactions.rb
parent3e66ba91d511158e22f90ff96b594d61f40eda01 (diff)
downloadrails-533dd8a681a3ea7d12acdfc6a2d6a95891282b49.tar.gz
rails-533dd8a681a3ea7d12acdfc6a2d6a95891282b49.tar.bz2
rails-533dd8a681a3ea7d12acdfc6a2d6a95891282b49.zip
Don't expose `add_to_transaction`
`add_to_transaction` was added at da840d1, but it should not be called by except internal, since `remember_transaction_record_state` should be called only once before saving. And also, currently `add_to_transaction` doesn't always add the record to transaction since da8de91, that is the reason hard to use that even in internal. Even if `add_to_transaction` ensure to add the record to transaction, that is an internal concern, people don't need to explicitly call `add_to_transaction`.
Diffstat (limited to 'activerecord/lib/active_record/transactions.rb')
-rw-r--r--activerecord/lib/active_record/transactions.rb20
1 files changed, 7 insertions, 13 deletions
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb
index 333f1a5435..00a62a70d6 100644
--- a/activerecord/lib/active_record/transactions.rb
+++ b/activerecord/lib/active_record/transactions.rb
@@ -355,18 +355,6 @@ module ActiveRecord
clear_transaction_record_state
end
- # Add the record to the current transaction so that the #after_rollback and #after_commit callbacks
- # can be called.
- def add_to_transaction
- if has_transactional_callbacks?
- self.class.connection.add_transaction_record(self)
- else
- sync_with_transaction_state
- set_transaction_state(self.class.connection.transaction_state)
- end
- remember_transaction_record_state
- end
-
# Executes +method+ within a transaction and captures its return value as a
# status flag. If the status is true the transaction is committed, otherwise
# a ROLLBACK is issued. In any case the status flag is returned.
@@ -387,7 +375,7 @@ module ActiveRecord
ensure
if has_transactional_callbacks? &&
(@_new_record_before_last_commit && !new_record? || _trigger_update_callback || _trigger_destroy_callback)
- self.class.connection.add_transaction_record(self)
+ add_to_transaction
end
end
status
@@ -459,6 +447,12 @@ module ActiveRecord
end
end
+ # 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)
+ end
+
def set_transaction_state(state)
@transaction_state = state
end