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
특정 학생과 관련된 StudentEnrollments 테이블에없는 Courses 테이블의 강좌 목록을 쿼리하고 싶습니다.
아마도 Left Join이 갈 길이라는 것을 알았지 만 레일의 joins ()는 테이블을 인수로만 받아들이는 것 같습니다. 내가 원하는 것을 할 것이라고 생각하는 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>
불가능할까요?