Permalink
Browse files

Small refactoring on clear_transaction_record_state

Make sure when we clean the `@_start_transaction_state` var we do it in
the same code-path.
Also this makes `clear_transaction_record_state`, more consistent with `restore_transaction_record_state`
  • Loading branch information...
1 parent 16a8a68 commit e3d223bcce28c3ac70b84399f9b211ae11542233 @arthurnn arthurnn committed May 15, 2014
Showing with 5 additions and 3 deletions.
  1. +5 −3 activerecord/lib/active_record/transactions.rb
@@ -295,7 +295,7 @@ def rollback_active_record_state!
def committed! #:nodoc:
run_callbacks :commit if destroyed? || persisted?
ensure
- @_start_transaction_state.clear
+ clear_transaction_record_state(true)
end
# Call the +after_rollback+ callbacks. The +force_restore_state+ argument indicates if the record
@@ -353,9 +353,11 @@ def remember_transaction_record_state #:nodoc:
end
# Clear the new record state and id of a record.
- def clear_transaction_record_state #:nodoc:
+ def clear_transaction_record_state(force = false) #:nodoc:
@_start_transaction_state[:level] = (@_start_transaction_state[:level] || 0) - 1
- @_start_transaction_state.clear if @_start_transaction_state[:level] < 1
+ if force || @_start_transaction_state[:level] < 1
+ @_start_transaction_state.clear
+ end
end
# Restore the new record state and id of a record that was previously saved by a call to save_record_state.

0 comments on commit e3d223b

Please sign in to comment.