选择在另一个表中具有相应行的表行

时间:2016-09-29 11:50:52

标签: ruby-on-rails ruby activerecord

我有两个学生和课程表,学生和课程之间有很多关系。我想选择那些在课程中有相应行的学生。

我怎样才能做到这一点。提前谢谢!

2 个答案:

答案 0 :(得分:1)

选择有相关课程的学生:

Student.joins(:courses)

然后,您可以通过在课程表中指定要过滤的列来进一步查询/过滤以上内容:

Student.joins(:courses).where(courses: { name: 'History' })

答案 1 :(得分:0)

如果您想在特定课程中找到学生:

您可以在课程模型中添加has_many students,以便您访问:

Course.find(1).students

Course.find_by_name('biology').students

等...

要直接回答你的问题,你会选择Andrey Deineko的答案,它会给你所有有课程的学生......