Fixes count for collection object when there's explicit rollback in callbacks #31488
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously collection models used to get persisted even
when there's an explicit ActiveRecord::Rollback in a
callback and change the count of the collection obect
without any regard to the callback specification.
This used to happen because ActiveRecord::Rollback used
to be silently swallowed and the rest of the pipeline triggered
commit from it's previously assigned data values.
For example:
@model.collection.create would yield 1 even if there's ActiveRecord::Rollback
in after_create callback of Collection model.
This PR fixes the problem and makes the count consistent
if there's a rollback on a collection object.
Fixes #28836 and #28536