Question

J'ai trouvé quelques questions sur SO au sujet des associations Rails qui sont un peu comme ma question, mais pour la vie de moi je ne peux pas à comprendre comment utiliser belongs_to plusieurs modèles.

Voici la structure de la table Je l'intention d'avoir:

User
 id

Post
 id
 user_id #foreign key; a post belongs to a User aka "Who created this post"

Comment
 id
 user_id #foreign key; a comment belongs to a User aka "Who made this comment"
 post_id #foreign key; a comment belongs to a Post aka "What post this comment is for"

associations :

User
 has_many :posts
 has_many :comments

Post
 belongs_to :user
 has_many :comments

Comment
 belongs_to :user
 belongs_to :post

Est-ce la bonne approche?

Était-ce utile?

La solution

Oui qui est la bonne approche.

Autres conseils

Bien que pas toujours l'approche « mieux », Rails offre ce qu'on appelle un polymorphes belongs_to association . Il vous empêche de définir une clé étrangère dans la base de données car la colonne xxx_id fait référence à un identifiant dans l'une des nombreuses tables possibles tandis qu'une autre colonne désigne le nom du modèle de cette table, mais il rend la relation plus explicite dans Rails. En outre, il limite le modèle seulement appartiennent à l'un des autres modèles, par opposition à l'appartenance à un ou plusieurs, comme cela se produirait à l'aide de la configuration de plusieurs clés étrangères sans magie db supplémentaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top