在我的Rails应用程序中,我有两个模型:学生和课程。
学生有很多课程。
将命令Student.first.courses运行到rails控制台将导致属于第一个学生的课程集合被返回。
我想知道的是,是否可以编写一个命令来检查是否有任何学生参加过特定课程。
例如,如果我想看看是否有学生使用英语'作为他们的课程之一,我该怎么写呢?
非常感谢任何帮助 - 谢谢!
答案 0 :(得分:4)
答案 1 :(得分:1)
继安德烈的回答之后,您可以将其包含在学生模型的范围内,如下所示:
scope :taking, ->(subject_name) { joins(:courses).where(courses: {name: subject_name})}
然后将其用于:
Student.taking("English")