Rails Ассоциации, хабтм? Полиморфный? И то и другое?
-
05-07-2019 - |
Вопрос
В моем приложении Rails у меня есть три модели: Projects, BlogPosts и Images. Projects и BlogPosts могут иметь много связанных изображений, а изображение может быть связано с Project, BlogPost или с обоими.
Каков наилучший способ создания ассоциаций для работы в Rails?
Решение
Я бы выделил хабтм в отдельный класс моделей, ImageLink. Тогда вы получите:
Project
has_many :image_links, :as => :resource
BlogPost
has_many :image_links, :as => :resource
ImageLink
belongs_to :image
belongs_to :resource, :polymorphic => true
Image:
has_many :image_links
Не связан с StackOverflow