ESQUERDA OUTER JOIN no Rails 4
Eu tenho 3 modelos:
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
Desejo consultar uma lista de cursos na tabela Cursos, que não existem na tabela StudentEnrollments associados a um determinado aluno.
Descobri que talvez o Left Join seja o caminho a seguir, mas parece que o joins () nos trilhos aceita apenas uma tabela como argumento. A consulta SQL que eu acho que faria o que eu quero é:
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
Como executo essa consulta da maneira Rails 4?
Qualquer entrada é apreciada.