J'ai un modèle d'article qui peut avoir exactement un modèle d'image qui lui est associé. Cependant, mon modèle Image peut être associé à de nombreux articles. Mon premier coup de couteau à cela était de définir la relation via:Rails Association Design
class Article < ActiveRecord::Base
belongs_to :image
end
class Image < ActiveRecord::Base
has_many :articles :dependent => :nullify
end
Cela fonctionne sur le plan technique et il ne nécessite que la clé étrangère image_id être sur la table des articles. Cela est parfaitement logique du point de vue de la base de données, mais cela ne va pas. Cela n'a pas de sens de dire qu'un article appartient à une image. En réalité, une image appartient à un article. Il serait plus logique de dire qu'un article a une seule image, mais si j'utilise has_one, cela place la clé étrangère article_id dans la table Images. Puisqu'une image peut avoir plus d'un article, cela n'a vraiment aucun sens d'avoir une seule colonne article_id définie dans la table Images.
Il doit y avoir un moyen plus simple de modéliser cela.
Eh bien, cela a du sens du point de vue de la base de données, donc j'y réfléchirais. Du point de vue de Rails, cela pourrait ne pas être parfaitement logique, mais la relation est schématiquement appropriée. –