diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2014-05-27 10:29:59 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2014-05-27 10:29:59 -0700 |
commit | 85bfb08c1ad74454ddf17b60d2d5ae3429b87d2b (patch) | |
tree | d5e69cbfa8cca81e2fc3109335768cff16370051 /activerecord/lib/active_record/associations | |
parent | 52434e9a512477d632b492793bcae5b4732ea689 (diff) | |
parent | c917fb7c35c8ef0f48963f44059e7088430bb2d0 (diff) | |
download | rails-85bfb08c1ad74454ddf17b60d2d5ae3429b87d2b.tar.gz rails-85bfb08c1ad74454ddf17b60d2d5ae3429b87d2b.tar.bz2 rails-85bfb08c1ad74454ddf17b60d2d5ae3429b87d2b.zip |
Merge pull request #14834 from al2o3cr/issue14155
Correctly alias table names when joining more than once
Diffstat (limited to 'activerecord/lib/active_record/associations')
-rw-r--r-- | activerecord/lib/active_record/associations/alias_tracker.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/alias_tracker.rb b/activerecord/lib/active_record/associations/alias_tracker.rb index 85109aee6c..a6a1947148 100644 --- a/activerecord/lib/active_record/associations/alias_tracker.rb +++ b/activerecord/lib/active_record/associations/alias_tracker.rb @@ -32,8 +32,18 @@ module ActiveRecord join.left.downcase.scan( /join(?:\s+\w+)?\s+(\S+\s+)?#{quoted_name}\son/ ).size - else + elsif join.respond_to? :left join.left.table_name == name ? 1 : 0 + else + # this branch is reached by two tests: + # + # activerecord/test/cases/associations/cascaded_eager_loading_test.rb:37 + # with :posts + # + # activerecord/test/cases/associations/eager_test.rb:1133 + # with :comments + # + 0 end end |