Я занимаюсь разработкой проекта, в котором у меня есть объект, который может иметь два вида активов: Изображения и Видео , в основном.
Поскольку я хочу, чтобы все ресурсы находились на одной таблице и в одной форме загрузки для Изображения или Видео , я использую Наследование одной таблицы, имеющее оба значения Изображение и Видео происходит от класса Актив . Кроме того, я буду выполнять различные проверки / обратные вызовы в зависимости от того, является ли это видео или изображение.
Я использую скрепку, чтобы справиться с процессом загрузки, и моя идея состоит в том, чтобы при загрузке файла и создании Актива с ним приложение создавало правильный подкласс ( Изображение или Видео ) в зависимости от типа mime загружаемого файла.
Это эскиз моих занятий:
class Project < ActiveRecord::Base
has_many :assets
accepts_nested_attributes_for :assets
end
class Asset < ActiveRecord::Base
belongs_to :project
has_uploaded_file :content, ...
end
class Picture < Asset
validate :image_size
...
end
class Video < Asset
after_save :convert_format
...
end
Моя идея состоит в том, чтобы реализовать обратный вызов before_save
в классе Asset и попытаться создать там правильный класс, но я не уверен, как это сделать, или это хорошая идея.
Есть идеи по этому поводу?