mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Remove duplicated logic.
This commit is contained in:
@@ -1805,9 +1805,7 @@ module ActiveRecord
|
||||
case associations
|
||||
when Symbol, String
|
||||
reflection = base.reflections[associations]
|
||||
if reflection && reflection.collection?
|
||||
records.each { |record| record.send(reflection.name).target.uniq! }
|
||||
end
|
||||
remove_uniq_by_reflection(reflection, records)
|
||||
when Array
|
||||
associations.each do |association|
|
||||
remove_duplicate_results!(base, records, association)
|
||||
@@ -1815,10 +1813,7 @@ module ActiveRecord
|
||||
when Hash
|
||||
associations.keys.each do |name|
|
||||
reflection = base.reflections[name]
|
||||
|
||||
if records.any? && reflection.options && reflection.options[:uniq]
|
||||
records.each { |record| record.send(reflection.name).target.uniq! }
|
||||
end
|
||||
remove_uniq_by_reflection(reflection, records)
|
||||
|
||||
parent_records = []
|
||||
records.each do |record|
|
||||
@@ -1837,6 +1832,7 @@ module ActiveRecord
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def build(associations, parent = nil, join_class = Arel::InnerJoin)
|
||||
parent ||= @joins.last
|
||||
case associations
|
||||
@@ -1859,6 +1855,12 @@ module ActiveRecord
|
||||
end
|
||||
end
|
||||
|
||||
def remove_uniq_by_reflection(reflection, records)
|
||||
if reflection && reflection.collection?
|
||||
records.each { |record| record.send(reflection.name).target.uniq! }
|
||||
end
|
||||
end
|
||||
|
||||
def build_join_association(reflection, parent)
|
||||
JoinAssociation.new(reflection, self, parent)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user