aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/query_methods.rb
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2010-10-13 12:10:51 +0100
committerAaron Patterson <aaron.patterson@gmail.com>2010-10-13 08:24:19 -0700
commit7dcb6334271aaecf53cbe99fe6f354a351bde210 (patch)
tree458955a4cb476c408eae94d0c455ab7da6971870 /activerecord/lib/active_record/relation/query_methods.rb
parent076b75bf9897cd06d3f849aba36dff65e12940ca (diff)
downloadrails-7dcb6334271aaecf53cbe99fe6f354a351bde210.tar.gz
rails-7dcb6334271aaecf53cbe99fe6f354a351bde210.tar.bz2
rails-7dcb6334271aaecf53cbe99fe6f354a351bde210.zip
Refactor JoinDependency and friends so that a JoinAssociation can produce an arbitrary number of joins, which will be needed in order to support nested through associations.
Diffstat (limited to 'activerecord/lib/active_record/relation/query_methods.rb')
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb13
1 files changed, 1 insertions, 12 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index a5dc051c6e..59ce76ea42 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -221,19 +221,8 @@ module ActiveRecord
@implicit_readonly = true unless association_joins.empty? && stashed_association_joins.empty?
- to_join = []
-
join_dependency.join_associations.each do |association|
- if (association_relation = association.relation).is_a?(Array)
- to_join << [association_relation.first, association.join_class, association.association_join.first]
- to_join << [association_relation.last, association.join_class, association.association_join.last]
- else
- to_join << [association_relation, association.join_class, association.association_join]
- end
- end
-
- to_join.uniq.each do |left, join_class, right|
- relation = relation.join(left, join_class).on(*right)
+ relation = association.join_to(relation)
end
relation.join(custom_joins)