В наличии 4 таблицы: Курс , Раздел , Зачисление , Студент .
- Курс has_many Разделы
- Разделы и студенты имеют общие отношения many_to_many, где Enrollment - это таблица присоединения
Я пытаюсь добавить проверку в Enrollment, чтобы студент не мог быть зачисленна несколько разделов одного курса.Я не могу понять, как реализовать эту проверку, потому что курс не имеет непосредственного отношения к зачислению.
Вот модели для дальнейшего разъяснения:
class Course < ActiveRecord::Base
has_many :sections
end
class Section < ActiveRecord::Base
belongs_to :course
has_many :enrollments
has_many :students, through :enrollments
end
class Enrollment < ActiveRecord::Base
validate :noDuplicateCourses
def noDuplicateCourses
if #TRYING TO FIGURE OUT HOW TO EXPRESS THE LOGIC HERE
errors.add(:student_id, 'Already enrolled in a different section of this course')
end
end
belongs_to :section
belongs_to :student
end
class Student < ActiveRecord::Base
has_many :enrollments
has_many :sections, through :enrollments
end