mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
#where fails if opts.responds_to?(:==) unexpectedly
Sometimes opts passed in might respond to ==, e.g. `Arel::Nodes::Grouping`. In this case, `opts == :chain` returns `Arel::Nodes::Equality` which causes odd behaviour. Prefer `if :chain == opts` which guarantees that `Symbol#==` would be invoked. Alternatively consider `eql?`.
This commit is contained in:
parent
21ffef38a5
commit
c431f1754b
1 changed files with 1 additions and 1 deletions
|
@ -548,7 +548,7 @@ module ActiveRecord
|
|||
# If the condition is any blank-ish object, then #where is a no-op and returns
|
||||
# the current relation.
|
||||
def where(opts = :chain, *rest)
|
||||
if opts == :chain
|
||||
if :chain == opts
|
||||
WhereChain.new(spawn)
|
||||
elsif opts.blank?
|
||||
self
|
||||
|
|
Loading…
Reference in a new issue