Szyny mają semantykę vs_należą do_do_do
Mam model reprezentujący aContent
element zawierający niektóre obrazy. Liczba obrazów jest ustalona, ponieważ te odniesienia do obrazów są bardzo specyficzne dla treści. Na przykładContent
model odnosi się doImage
model dwa razy (obraz profilu i obraz tła). Próbuję uniknąć generycznegohas_many
i trzymanie się wieluhas_one
jest. Aktualna struktura bazy danych wygląda następująco:
contents
- id:integer
- integer:profile_image_id
- integer:background_image_id
images
- integer:id
- string:filename
- integer:content_id
Po prostu nie mogę się dowiedzieć, jak poprawnie skonfigurować skojarzenia. TheContent
model może zawierać dwabelongs_to
odniesienia doImage
, ale to nie wydaje się semantycznie właściwe, ponieważ idealnie obraz należy do treści, czyli innymi słowy, treść ma dwa obrazy.
To najlepsze, co mogłem wymyślić (łamiąc semantykę):
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
Czy jestem daleko i czy istnieje lepszy sposób na osiągnięcie tego związku?