It seems that using a join model that joins with two has_many’s will
fail to generate proper SQL
class StudentSemesterRecord < ActiveRecord::Base
belongs_to :semester
has_many :discipline_records, :through => :semester
end
class Semester < ActiveRecord::Base
has_many :student_semester_records
has_many :discipline_records
end
class DisciplineRecord < ActiveRecord::Base
belongs_to :semester
end
student_semester_record.discipline_records yields this SQL:
SELECT discipline_records.* FROM discipline_records INNER JOIN semesters
ON discipline_records.semester_id = semesters.id WHERE
(semesters.semester_id = 1349)
The where clause is invalid. It is using:
semesters.semester_id = #{student_semester_record.id}
It should be using:
semesters.id = #{student_semester_record.semester_id}
Am I doing something wrong, is this a bug, or is this association type
simply not supported?
Thanks!
–
Jack C.
[email protected]