使用联接从三个模型中进行Rails查询

时间:2019-05-30 10:05:35

标签: ruby-on-rails

我的Rails应用程序中具有以下模型:

class Test
    has_many :tests_profiles
    has_many :class_profiles

class TestProfile
    belongs_to :class_profile
    belongs_to :test

class ClassProfile
    has_many :tests_profiles

我必须查询属于特定tests的{​​{1}}。我现在的助手功能是这样的:

ClassProfile

在我的def get_tests(class_profile) return Test.joins(:tests_profiles).where(tests_profiles: {class_profile_id: class_profile.id}) 文件中,我正在遍历这样的结果:

erb

但是这里的问题是我要获取所有测试名称,而不是与该特定<% tests = get_tests(class_profile) %> <% tests.each do |test| %> <th><%= test.name %></th> <% end %> 关联的onlt名称。我该如何纠正它,使其以我想要的方式起作用?

1 个答案:

答案 0 :(得分:0)

您可以在此处使用has_many through

class Test
    has_many :tests_profiles
    has_many :class_profiles, through: :tests_profiles

class TestsProfile
    belongs_to :class_profile
    belongs_to :test

class ClassProfile
    has_many :tests_profiles
    has_many :tests, through: :tests_profiles

并在视图中使用class_profile.tests.each do