Fix really_destroy used against a has_one relationship that is soft deleted #574
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.
I found a bug. The test explains the scenario but I'll explain it here as well.
Given:
my_model.destroy
then both objects get soft-deleted as you would expectmy_model.really_destroy
it does not destroy the associatedlinked_model
.This is because paranoia tries to access the linked model by running
self.send(name)
. This command will not pick up soft-deletedhas_one
associations (though it works fine forhas_many
associations) so some extra code is required in this scenario.Note the reload in the test is required, as otherwise the version of
my_model
in memory still links to theLinkedModel
.