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 })
    

    酷,是的,这就是我错过的。谢谢!