method
collapse_wheres
v3.0.5 -
Show latest stable
-
0 notes -
Class: ActiveRecord::QueryMethods
- 1.0.0
- 1.1.0
- 1.1.1
- 1.1.6
- 1.2.0
- 1.2.6
- 2.0.0
- 2.0.1
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.2
- 2.3.8
- 3.0.0
- 3.0.5 (0)
- 3.0.7 (0)
- 3.0.9 (0)
- 3.1.0 (0)
- 3.2.1 (0)
- 3.2.3 (0)
- 3.2.8 (0)
- 3.2.13 (0)
- What's this?
collapse_wheres(arel, wheres)
private
Hide source
# File activerecord/lib/active_record/relation/query_methods.rb, line 200 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


