从多对多关系中获取记录

时间:2019-07-17 13:49:22

标签: ruby-on-rails ruby-on-rails-3 activerecord

我正在做一个旧的Rails项目。我通过名为Student的桥模型在Coursestudents_courses之间建立了多对多关系。

Student类:

class Student < ActiveRecord::Base
  has_and_belongs_to_many :courses, :class_name => 'Course', :join_table => 'students_courses'
end

Course类:

class Course < ActiveRecord::Base

end

StudentCourse类:

class StudentCourse < ActiveRecord::Base
  belongs_to :student
  belongs_to :course
end

firstname模型中有一个Student属性。我想找到一个拥有firstname“ John”并正在学习课程“ foo”的学生。如何在Rails的ruby中得到这个?

1 个答案:

答案 0 :(得分:0)

只需加入课程并进行查询

Student.joins(:courses).where(firstname: 'John', courses: { name: 'foo' })

您可以在rails guides

中阅读更多内容