У меня есть модель, представляющая элемент Content
, который содержит некоторые изображения. Количество изображений фиксировано, так как эти ссылки на изображения очень специфичны для содержимого. Например, модель Content
относится к модели Image
дважды (изображение профиля и фоновое изображение). Я пытаюсь избежать общего has_many
и придерживаться нескольких has_one
. Текущая структура базы данных выглядит так:
contents
- id:integer
- integer:profile_image_id
- integer:background_image_id
images
- integer:id
- string:filename
- integer:content_id
Я просто не могу понять, как правильно настроить ассоциации здесь. Модель Content
может содержать две ссылки belongs_to
для Image
, но это не кажется семантически правильным, потому что в идеале изображение принадлежит содержимому, или, другими словами, контент имеет два изображения.
Это лучшее, что я мог подумать (сломав семантику):
class Content
belongs_to :profile_image, :class_name => 'Image', :foreign_key => 'profile_image_id'
belongs_to :background_image, :class_name => 'Image', :foreign_key => 'background_image_id'
end
У меня нет выхода, и есть ли лучший способ достичь этой ассоциации?