Carriles belongs_to muchos modelos [cerrado]
-
29-09-2019 - |
Pregunta
Lo que encontrar algunas preguntas sobre lo que alrededor de las asociaciones de rieles que son algo así como mi pregunta, pero parece que no puedo por la vida de mí para entender cómo usar belongs_to
múltiples modelos.
Aquí está la estructura de la tabla que la intención de tener:
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"
Y asociaciones
User
has_many :posts
has_many :comments
Post
belongs_to :user
has_many :comments
Comment
belongs_to :user
belongs_to :post
Es este el enfoque correcto?
Solución
Sí que es el enfoque correcto.
Otros consejos
Aunque no siempre es el enfoque de "mejor", rieles ofertas lo que se llama un polimórfica belongs_to asociación . Se le impide definir una clave externa de la base de datos porque la columna xxx_id hace referencia a un identificador en una de las muchas mesas posibles, mientras que otra columna designa el nombre del modelo de la mesa, pero hace que la relación más explícita en los carriles. Asimismo, se restringe el modelo sólo pertenecen a uno de los otros modelos, en lugar de pertenecer a uno o más, como ocurriría con el Configuración de varias claves externas sin un poco de magia dB adicionales.