class ActiveRecord::Relation::WhereClause

def or(other)

def or(other)
  left = self - other
  common = self - left
  right = other - common
  if left.empty? || right.empty?
    common
  else
    left = left.ast
    left = left.expr if left.is_a?(Arel::Nodes::Grouping)
    right = right.ast
    right = right.expr if right.is_a?(Arel::Nodes::Grouping)
    or_clause = Arel::Nodes::Or.new(left, right)
    common.predicates << Arel::Nodes::Grouping.new(or_clause)
    common
  end
end