Rails has_one vs belong_to semantics
Ich habe ein Model, das einen darstelltContent
Element, das einige Bilder enthält. Die Anzahl der Bilder ist festgelegt, da diese Bildreferenzen sehr inhaltsspezifisch sind. Zum Beispiel dieContent
Modell bezieht sich auf dieImage
Modell zweimal (Profilbild und Hintergrundbild). Ich versuche, ein Generikum zu vermeidenhas_many
und bei mehreren bleibenhas_one
's. Die aktuelle Datenbankstruktur sieht folgendermaßen aus:
contents
- id:integer
- integer:profile_image_id
- integer:background_image_id
images
- integer:id
- string:filename
- integer:content_id
Ich kann einfach nicht herausfinden, wie ich die Assoziationen hier richtig einrichte. DasContent
Modell könnte zwei enthaltenbelongs_to
Verweise auf eineImage
Dies scheint jedoch semantisch nicht richtig zu sein, da im Idealfall ein Bild zum Inhalt gehört oder mit anderen Worten, der Inhalt aus zwei Bildern besteht.
Dies ist das Beste, was ich mir vorstellen kann (durch Brechen der Semantik):
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
Bin ich weit weg und gibt es einen besseren Weg, um diese Assoziation zu erreichen?