Skip to content
This repository has been archived by the owner on Mar 30, 2022. It is now read-only.

Fix where_unscoping on 4.0, 4.1, 4.2 #421

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

chewi
Copy link

@chewi chewi commented Jun 17, 2016

Believe it or not, basic unscope functionality was broken. I don't know how but with Squeel in play, where_values somehow becomes a nested array. Flattening it first fixes the issue.

I have adjusted the 4.1 override to use super so that less code is duplicated. This isn't possible for 4.0. I have added a new override for 4.2 because where_values should not be mutated in that version.

Perhaps the original author thought it didn't because there was no
`where_unscoping` override defined for 4.2 but it inherits from 4.1.

It doesn't hurt to do the test anyway, except that the unscope call
had to be changed to `unscope!` in order for the SQL check to pass. It
should have been `unscope!` all along and it only worked because of
rails/rails#20722.
Believe it or not, basic `unscope` functionality was broken. I don't
know how but With Squeel in play, `where_values` somehow becomes a
nested array. Flattening it first fixes the issue.

I have adjusted the 4.1 override to use `super` so that less code is
duplicated. This isn't possible for 4.0. I have added a new override
for 4.2 because `where_values` should not be mutated in that version.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant