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`
上级 16a8a68b
......@@ -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.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册