method
prepare_instances_to_run_callbacks_on
v7.1.3.2 -
Show latest stable
-
0 notes -
Class: Transaction
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
prepare_instances_to_run_callbacks_on(records)
private
Hide source
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 267 def prepare_instances_to_run_callbacks_on(records) records.each_with_object({}) do |record, candidates| next unless record.trigger_transactional_callbacks? earlier_saved_candidate = candidates[record] next if earlier_saved_candidate && record.class.run_commit_callbacks_on_first_saved_instances_in_transaction # If the candidate instance destroyed itself in the database, then # instances which were added to the transaction afterwards, and which # think they updated themselves, are wrong. They should not replace # our candidate as an instance to run callbacks on next if earlier_saved_candidate&.destroyed? && !record.destroyed? # If the candidate instance was created inside of this transaction, # then instances which were subsequently loaded from the database # and updated need that state transferred to them so that # the after_create_commit callbacks are run record._new_record_before_last_commit = true if earlier_saved_candidate&._new_record_before_last_commit # The last instance to save itself is likeliest to have internal # state that matches what's committed to the database candidates[record] = record end end