Мне нужно связать модель комментариев с двумя идентификаторами одновременно, но я не могу понять, как это сделать. Вот моя ситуация. Я создаю онлайновую систему аттестации , и мне нужно, чтобы учитель мог прокомментировать конкретного ученика в конкретном курсе за определенный семестр (период аттестации).
class Course
has_many :course_terms
has_many :enrollments
end
class CourseTerm
belongs_to :course
end
class Student
has_many :enrollments
has_many :courses, :through => :enrollments
end
class Enrollment < ActiveRecord::Base
belongs_to :student
belongs_to :course
end
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end
Я знаю, это выглядит очень сложно, но на самом деле все довольно просто. У курса есть много терминов, в которые может быть зачислен студент. Я хочу получить комментарии для CourseTerm + Student, но я не знаю, может ли Polymorphic обрабатывать несколько идентификаторов в одном комментарии. Могу ли я сделать что-то вроде этого:
class CourseTerm
has_many :comments, :as => :commentable, :source => [:student, :course_term]
end
Или я должен отказаться от Полиморфизма и пойти со стандартной сборкой таблицы комментариев с CourseTerm.id и Student.id?