最佳答案
我有三个模特:
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
我希望查询“课程”表中与某个学生关联的“学生注册”表中不存在的课程列表。
我发现也许左连接才是正确的方法,但是似乎 ails 中的 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的方式执行这个查询?
任何意见都欢迎。