Здравствуйте все,
У меня есть полиморфная ассоциация, используемая в настоящее время с несколькими различными моделями. Каждая модель имеет свой собственный видеофайл, связанный с ней, поэтому она использует «видеоизображаемую» полиморфную ассоциацию. Однако недавно я обнаружил необходимость создания новой модели с двумя отдельными типами видео. Я позволю коду говорить.
#current setup
class Video < ActiveRecord::Base
belongs_to :videoable, :polymorphic => true
end
class Project < ActiveRecord::Base
has_one :video, :as => videoable
end
# New model I am working on
class Assignment < ActiveRecord::Base
has_one :video_draft
has_one :video_final
end
В идеале модель назначения должна иметь два специальных типа видеообъектов, все еще используя полиморфную ассоциацию. Я рассмотрел наследование одной таблицы, но я не уверен, что это лучший подход здесь. Какие у меня варианты? Я не хочу создавать модель video_draft и модель video_final, потому что, в конце концов, они просто видео-вложения, как и все остальное. Единственное отличие состоит в том, что они представляют собой специализированные видео-вложения, которые нуждаются в собственном уникальном справочнике.