Мне нужно связать модель комментариев с двумя идентификаторами одновременно, но не могу понять, как это сделать. Вот моя ситуация. Я создаю on-line school grading system и должен уметь преподавать комментарий к конкретному учащемуся в конкретном курсе на определенный срок (период оценки).Отображение полиморфного отношения на 2 модели одновременно
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
Или я должен отказаться от Polymorphics и пойти со стандартной таблицей Комментарий строить с CourseTerm.id и Student.id?
Darn вы и ваша логика. :) Я надеялся, что у Rails может быть еще * волшебство * в его сумке, чтобы все это просто работало. О, хорошо, похоже, я должен сделать это тяжело. Thanx за помощь! –