aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-10-20 13:48:44 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2013-10-20 13:48:44 -0700
commit796c0fc1b065bc4248a410110e728e5b2c6db19e (patch)
treece409eefea8bf63d8be550430898c58fa6b9268f /activerecord/lib
parentd059fa6f0c923240ef39a372276a151827a6df5b (diff)
downloadrails-796c0fc1b065bc4248a410110e728e5b2c6db19e.tar.gz
rails-796c0fc1b065bc4248a410110e728e5b2c6db19e.tar.bz2
rails-796c0fc1b065bc4248a410110e728e5b2c6db19e.zip
pass the outer joins to join_constraints
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/associations/join_dependency.rb3
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb6
2 files changed, 3 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/associations/join_dependency.rb b/activerecord/lib/active_record/associations/join_dependency.rb
index 0969fc4ebd..7fd1abc204 100644
--- a/activerecord/lib/active_record/associations/join_dependency.rb
+++ b/activerecord/lib/active_record/associations/join_dependency.rb
@@ -84,7 +84,8 @@ module ActiveRecord
node.children.each { |child| construct_tables! node, child }
end
- def join_constraints
+ def join_constraints(outer_joins)
+ outer_joins.each { |oj| merge_outer_joins! oj }
make_joins join_root
end
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index 9c9690215a..328f23d125 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -950,11 +950,7 @@ module ActiveRecord
join_list
)
- stashed_association_joins.each do |dep|
- join_dependency.merge_outer_joins! dep
- end
-
- joins = join_dependency.join_constraints
+ joins = join_dependency.join_constraints stashed_association_joins
joins.each { |join| manager.from(join) }