diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-10-20 13:48:44 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-10-20 13:48:44 -0700 |
commit | 796c0fc1b065bc4248a410110e728e5b2c6db19e (patch) | |
tree | ce409eefea8bf63d8be550430898c58fa6b9268f /activerecord | |
parent | d059fa6f0c923240ef39a372276a151827a6df5b (diff) | |
download | rails-796c0fc1b065bc4248a410110e728e5b2c6db19e.tar.gz rails-796c0fc1b065bc4248a410110e728e5b2c6db19e.tar.bz2 rails-796c0fc1b065bc4248a410110e728e5b2c6db19e.zip |
pass the outer joins to join_constraints
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/associations/join_dependency.rb | 3 | ||||
-rw-r--r-- | activerecord/lib/active_record/relation/query_methods.rb | 6 |
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) } |