diff options
author | Takayuki Nakata <f.seasons017@gmail.com> | 2019-07-26 23:12:44 +0900 |
---|---|---|
committer | Takayuki Nakata <f.seasons017@gmail.com> | 2019-07-26 23:12:44 +0900 |
commit | 285f081e1ddf0a552ae1331a76cdaa90a51f319c (patch) | |
tree | 640b26869d72d2e2431db073fa1ffca1d0cba1fd /activerecord/test/cases/associations | |
parent | 3ecaf0aafa43ff6fd511c6557592591ee5731244 (diff) | |
download | rails-285f081e1ddf0a552ae1331a76cdaa90a51f319c.tar.gz rails-285f081e1ddf0a552ae1331a76cdaa90a51f319c.tar.bz2 rails-285f081e1ddf0a552ae1331a76cdaa90a51f319c.zip |
Fix join middle table alias when using HABTM
In using HABTM, join middle table alias is combined with the associated
models name without sort, while middle table name is combined with those
models name with sort.
Fixes #36742.
Diffstat (limited to 'activerecord/test/cases/associations')
-rw-r--r-- | activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb b/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb index 25cfa0a723..de9742b250 100644 --- a/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb @@ -700,10 +700,17 @@ class HasAndBelongsToManyAssociationsTest < ActiveRecord::TestCase assert_equal ["id"], developers(:david).projects.select(:id).first.attributes.keys end + def test_join_middle_table_alias + assert_equal( + 2, + Project.includes(:developers_projects).where.not("developers_projects.joined_on": nil).to_a.size + ) + end + def test_join_table_alias assert_equal( 3, - Developer.includes(projects: :developers).where.not("projects_developers_projects_join.joined_on": nil).to_a.size + Developer.includes(projects: :developers).where.not("developers_projects_projects_join.joined_on": nil).to_a.size ) end @@ -716,7 +723,7 @@ class HasAndBelongsToManyAssociationsTest < ActiveRecord::TestCase assert_equal( 3, - Developer.includes(projects: :developers).where.not("projects_developers_projects_join.joined_on": nil).group(group.join(",")).to_a.size + Developer.includes(projects: :developers).where.not("developers_projects_projects_join.joined_on": nil).group(group.join(",")).to_a.size ) end |