Ruby on rails 获取通过Rails中的值列表连接的所有行
我有两张桌子(型号):Ruby on rails 获取通过Rails中的值列表连接的所有行,ruby-on-rails,orm,rails-activerecord,Ruby On Rails,Orm,Rails Activerecord,我有两张桌子(型号): 学生 课程 它们都通过一个名为课程注册的表连接起来 在轨道中,它们的设置方式如下: Student.rb: has_many :courses, through: course_enrollments Course.rb: has_many :students, through: course_entrollments CourseEntrollment.rb: belongs_to :student, foreign_key... belongs_to :cours
课程注册的表连接起来
在轨道中,它们的设置方式如下:
Student.rb:
has_many :courses, through: course_enrollments
Course.rb:
has_many :students, through: course_entrollments
CourseEntrollment.rb:
belongs_to :student, foreign_key...
belongs_to :course, foreign_key..
我想从一个特定的课程列表中获取所有注册到所有课程的学生,如下所示:
courses_list = current_professor.courses_teaching
student_list = Student.eager_load(:some_table_I_have_to_load).join_with_all_courses(courses_list).order(sort_attributes).paginate....
我的问题是我该怎么做?我对SQL不是很在行,正在绞尽脑汁想我需要什么。
我想我需要在顺序
之前加入某种类型的连接,或者where子句,但是我很难弄清楚正确地做什么以及如何做
非常感谢 如果
课程列表
是一种关系。这样做很简单:
student_list = Student.joins(:course_enrollments).where(course_enrollments: { course_id: courses_list.ids })
酷,是的,这就是我错过的。谢谢!