我有3个模型:
class Student < ActiveRecord::Base
has_many :student_enrollments, dependent: :destroy
has_many :courses, through: :student_enrollments
end
class Course < ActiveRecord::Base
has_many :student_enrollments, dependent: :destroy
has_many :students, through: :student_enrollments
end
class StudentEnrollment < ActiveRecord::Base
belongs_to :student
belongs_to :course
end
我希望查询Courses表中与某个学生关联的,但在StudentEnrollments表中不存在的课程列表。
我发现也许左连接是解决这个问题的方法,但是在Rails中,join()似乎只接受一个表作为参数。我认为能够实现我想要的功能的SQL查询语句是:
SELECT *
FROM Courses c LEFT JOIN StudentEnrollment se ON c.id = se.course_id
WHERE se.id IS NULL AND se.student_id = <SOME_STUDENT_ID_VALUE> and c.active = true
我该如何以Rails 4的方式执行这个查询?
非常感谢您的任何建议。
se.student_id = <SOME_STUDENT_ID_VALUE>
肯定是不可能的吧? - PJSCopeland