Domanda

Ho trovato alcune domande sul SO circa associazioni Rails che sono un po 'come la mia domanda, ma per la vita di me non riesco a capire come usare belongs_to più modelli.

Ecco il struttura tabella ho intenzione di avere:

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"

E Associazioni :

User
 has_many :posts
 has_many :comments

Post
 belongs_to :user
 has_many :comments

Comment
 belongs_to :user
 belongs_to :post

E 'questo l'approccio corretto?

È stato utile?

Soluzione

Sì che è l'approccio corretto.

Altri suggerimenti

Anche se non sempre l'approccio "migliore", Rails offerte quella che viene chiamata una polimorfico belongs_to associazione . Esso impedisce di definire una chiave esterna nel database perché la colonna XXX_id fa riferimento un id in uno dei tanti tavoli possibili, mentre un'altra colonna indica il nome del modello che di tabella, ma rende il rapporto più esplicito in Rails. Inoltre, limita il modello solo appartenere a uno degli altri modelli, al contrario di appartenenti ad una o più, come accadrebbe con la configurazione di molteplici chiavi esterne senza qualche magia db aggiuntivo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top