提交 8998aea4 编写于 作者: A Aaron Patterson

making relationship merge cheaper

上级 b6848b64
......@@ -3,10 +3,11 @@
module ActiveRecord
module SpawnMethods
def merge(r)
merged_relation = clone
return merged_relation unless r
return self unless r
return to_a & r if r.is_a?(Array)
merged_relation = clone
Relation::ASSOCIATION_METHODS.each do |method|
value = r.send(:"#{method}_values")
......@@ -24,7 +25,7 @@ def merge(r)
merged_relation.send(:"#{method}_values=", merged_relation.send(:"#{method}_values") + value) if value.present?
end
merged_relation = merged_relation.joins(r.joins_values)
merged_relation.joins_values += r.joins_values
merged_wheres = @where_values + r.where_values
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册