Hi,
A quick question: in the query Company.where(:status => :active)
, is it OK to use the symbol (:active) as a value in the query?
It definitely works with no issues at all.
But there’s a lot of controversy around that in the squeel:
https://github.com/ernie/squeel/issues/67#issuecomment-5237083
Ernie explains that the use of Symbols in ActiveRecord wasn’t assumed and is incorrect.
Additionally, he says “In AR documentation, symbols are never shown as a value in examples.”.
I personally feel a bit lost in this regard and it would be awesome if somebody could shade some light on this.
Cheers,
Dmytrii.
Hi,
A quick question: in the query Company.where(:status => :active)
, is it OK to use the symbol (:active) as a value in the query?
It definitely works with no issues at all.
I’m not sure I’d consider it a public stable API, but if it works, go wild :).
So it is not a public API and the symbols were not supposed to be used this way? RIght?
It's not really good Ruby style. See has_many :through - Symbols are not pretty strings
However I think we'd probably have to add specific code to make it *not* work, so it will probably continue to work in the future. But I wouldn't recommend doing it.
Hi,
A quick question: in the query `Company.where(:status => :active)`, is it OK to use the symbol (:active) as a value in the query?
It definitely works with no issues at all.
I'm not sure I'd consider it a public stable API, but if it works, go wild :).
So it is not a public API and the symbols were not supposed to be used this way? RIght?
It's not really good Ruby style. See has_many :through - Symbols are not pretty strings
Do you mind to explain why exactly?
I get the difference between strings and symbols, but in the example of "status" the string is definitely a wrong candidate to me.
It is "internal" to the system.
Although I understand and ok with converting it to a string to query, I don't see why symbol isn't good in this case (`company.status == :active`).
However I think we'd probably have to add specific code to make it *not* work, so it will probably continue to work in the future. But I wouldn't recommend doing it.
I think you guys have settled that symbols are not "officially supported" here AR dynamic finders fail when using symbols · Issue #67 · activerecord-hackery/squeel · GitHub
So I'll take it for granted. Thanks a lot for the help.
Cheers.