未验证 提交 3b04715c 编写于 作者: R Rafael França 提交者: Rafael Mendonça França

Merge pull request #36776 from giraffate/fix_join_middle_table_alias_when_using_HABTM

Fix join middle table alias when using HABTM
上级 91d5e4fc
...@@ -63,7 +63,7 @@ def self.suppress_composite_primary_key(pk) ...@@ -63,7 +63,7 @@ def self.suppress_composite_primary_key(pk)
def middle_reflection(join_model) def middle_reflection(join_model)
middle_name = [lhs_model.name.downcase.pluralize, middle_name = [lhs_model.name.downcase.pluralize,
association_name].join("_").gsub("::", "_").to_sym association_name.to_s].sort.join("_").gsub("::", "_").to_sym
middle_options = middle_options join_model middle_options = middle_options join_model
HasMany.create_reflection(lhs_model, HasMany.create_reflection(lhs_model,
......
...@@ -700,10 +700,17 @@ def test_habtm_respects_select_query_method ...@@ -700,10 +700,17 @@ def test_habtm_respects_select_query_method
assert_equal ["id"], developers(:david).projects.select(:id).first.attributes.keys assert_equal ["id"], developers(:david).projects.select(:id).first.attributes.keys
end 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 def test_join_table_alias
assert_equal( assert_equal(
3, 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 end
...@@ -716,7 +723,7 @@ def test_join_with_group ...@@ -716,7 +723,7 @@ def test_join_with_group
assert_equal( assert_equal(
3, 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 end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册