Rails has_one vs perten_to semântica
Eu tenho um modelo representando umContent
item que contém algumas imagens. O número de imagens é fixo, pois essas referências de imagem são muito específicas para o conteúdo. Por exemplo, oContent
modelo refere-se aoImage
modelo duas vezes (imagem de perfil e imagem de fundo). Estou tentando evitar um genéricohas_many
e aderindo a várioshas_one
's. A estrutura atual do banco de dados se parece com:
contents
- id:integer
- integer:profile_image_id
- integer:background_image_id
images
- integer:id
- string:filename
- integer:content_id
Eu simplesmente não consigo descobrir como configurar as associações corretamente aqui. oContent
modelo pode conter doisbelongs_to
referências a umImage
, mas isso não parece semanticamente correto, porque idealmente uma imagem pertence ao conteúdo ou, em outras palavras, o conteúdo tem duas imagens.
Este é o melhor que pude pensar (quebrando a semântica):
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
Estou longe, e há uma maneira melhor de conseguir essa associação?