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

Can't co-exist with scope like where(:status => :ACTIVE) #171

Closed
zhangxue opened this issue Sep 28, 2012 · 3 comments
Closed

Can't co-exist with scope like where(:status => :ACTIVE) #171

zhangxue opened this issue Sep 28, 2012 · 3 comments

Comments

@zhangxue
Copy link

After adding squeel into the project, all existing scope that has expressions like where(:status => :ACTIVE) failed, because it generates sql like:
SELECT people.* FROM people WHERE people.status = people.ACTIVE

Of course changing :ACTIVE into string will solve the problem, but I am a little worried about needing to double check all existing scope. And the conflict with standard rails usage also make me hesitate to use squeel, since someone new may break it easily.

Any ideas/suggestions?

Btw: I am using Rails 3.1.1 and I leave symbol extension disabled.

@vendethiel
Copy link

#67

@phantomwhale
Copy link

Having looked over older issues, we concluded that you can't use symbols for the RHS of where clauses (see plenty of other links, included that linked above).

We were still surprised that the order block required strings only as well - given it's normally columns, which are allowed on the LHS of where clauses. But certainly changing them to strings fixes up the code for us, so we accept it given the goodness Squeel brings otherwise.

But yeah, Squeel is an API breaker, albeit a breaker of a poorly defined API ! And from the end of the link posted above, it seems those in control of the Active Record API approve, so it's a "safe" breakage I guess.

@ernie ernie closed this as completed Sep 28, 2012
@zhangxue
Copy link
Author

How can I not seeing this after 10 mins of search in the closed issues list! Thanks @Nami-Doc

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants