Permalink
Browse files

pass where values to the helper function rather than rely on internal…

… state
  • Loading branch information...
1 parent 3b266bc commit 658e9e0f35104c8e47f7442b2fcd9c7b1d405787 @tenderlove tenderlove committed May 21, 2013
Showing with 4 additions and 4 deletions.
  1. +4 −4 activerecord/lib/active_record/relation/merger.rb
@@ -137,19 +137,19 @@ def merged_wheres
if values[:where].empty? || relation.where_values.empty?
relation.where_values + values[:where]
else
- sanitized_wheres + values[:where]
+ sanitized_wheres(relation.where_values, values[:where]) + values[:where]
end
end
# Remove equalities from the existing relation with a LHS which is
# present in the relation being merged in.
- def sanitized_wheres
+ def sanitized_wheres(lhs_wheres, rhs_wheres)
seen = Set.new
- values[:where].each do |w|
+ rhs_wheres.each do |w|
seen << w.left if w.respond_to?(:operator) && w.operator == :==
end
- relation.where_values.reject do |w|
+ lhs_wheres.reject do |w|
w.respond_to?(:operator) && w.operator == :== && seen.include?(w.left)
end
end

0 comments on commit 658e9e0

Please sign in to comment.