Flowdock
method

collapse_wheres

Importance_0
v3.0.5 - Show latest stable - 0 notes - Class: ActiveRecord::QueryMethods
collapse_wheres(arel, wheres) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

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
Register or log in to add new notes.