Fix issue with default scope clashing with deletion.#70
Merged
Conversation
…uses default scopes which can collide with deletion.
Author
|
Apparently this has been fixed in Rails branch ... I guess if it's fixed in newer versions of Rails this change is not that significant and only allows better backwards compatibility. |
radar
added a commit
that referenced
this pull request
Sep 23, 2013
Fix issue with default scope clashing with deletion.
Collaborator
|
Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #37
In certain edge case scenarios default_scopes can interfere with the SQL Paranoia generates to issue a record hide. Both
update_columnandupdate_attributeuse default scopes. Take the following edge case scenario:In this case Paranoia throws the following SQL error when trying to hide/destroy a User record:
ActiveRecord::StatementInvalid: PG::Error: ERROR: missing FROM-clause entry for table "logins"My particular case is a very edge case scenario, but I can see the default scoping being a broader problem.
By adding unscoped to the deletion query default scope issues are avoided. In this case since Paranoia is simply saving an attribute on an already found and instantiated object, adding unscoped shouldn't impact the functionality of Paranoia at all. In fact,
unscopedis only a class method.