Rotaie belongs_to molti modelli [chiusa]
-
29-09-2019 - |
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?
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.