diff options
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/associations/join_dependency.rb | 23 | ||||
-rw-r--r-- | activerecord/lib/active_record/associations/join_dependency/join_association.rb | 11 |
2 files changed, 17 insertions, 17 deletions
diff --git a/activerecord/lib/active_record/associations/join_dependency.rb b/activerecord/lib/active_record/associations/join_dependency.rb index 89812a3826..4c4a0a95ac 100644 --- a/activerecord/lib/active_record/associations/join_dependency.rb +++ b/activerecord/lib/active_record/associations/join_dependency.rb @@ -41,7 +41,7 @@ module ActiveRecord def graft(*associations) associations.each do |association| join_associations.detect {|a| association == a} || - build(association.reflection.name, association.find_parent_in(self) || join_base, association.join_type) + build(association.reflection.name, find_parent_part(association.parent) || join_base, association.join_type) end self end @@ -50,10 +50,6 @@ module ActiveRecord join_parts.drop 1 end - def join_base - join_parts.first - end - def join_relation(relation) join_associations.inject(relation) do |rel,association| association.join_relation(rel) @@ -86,7 +82,22 @@ module ActiveRecord records end - protected + private + + def find_parent_part(parent) + join_parts.detect do |join_part| + case parent + when JoinBase + parent.base_klass == join_part.base_klass + else + parent == join_part + end + end + end + + def join_base + join_parts.first + end def remove_duplicate_results!(base, records, associations) case associations diff --git a/activerecord/lib/active_record/associations/join_dependency/join_association.rb b/activerecord/lib/active_record/associations/join_dependency/join_association.rb index ef8f5f1eb2..f6a04ef9f1 100644 --- a/activerecord/lib/active_record/associations/join_dependency/join_association.rb +++ b/activerecord/lib/active_record/associations/join_dependency/join_association.rb @@ -44,17 +44,6 @@ module ActiveRecord other.parent == parent end - def find_parent_in(other_join_dependency) - other_join_dependency.join_parts.detect do |join_part| - case parent - when JoinBase - parent.base_klass == join_part.base_klass - else - parent == join_part - end - end - end - def join_constraints joins = [] tables = @tables.dup |