method
collapse_wheres
v3.0.9 -
Show latest stable
- Class:
ActiveRecord::QueryMethods
collapse_wheres(arel, wheres)private
No documentation available.
# File activerecord/lib/active_record/relation/query_methods.rb, line 199
def collapse_wheres(arel, wheres)
equalities = wheres.grep(Arel::Nodes::Equality)
groups = equalities.group_by do |equality|
equality.left
end
groups.each do |_, eqls|
test = eqls.inject(eqls.shift) do |memo, expr|
memo.and(expr)
end
arel = arel.where(test)
end
(wheres - equalities).each do |where|
where = Arel.sql(where) if String === where
arel = arel.where(Arel::Nodes::Grouping.new(where))
end
arel
end