Вопрос

Я нашел несколько вопросов по поводу ассоциаций Rails, которые в некоторой степени похожи на мой вопрос, но для жизни я не могу понять, как использовать belongs_to несколько моделей.

Вот Структура таблицы Я собираюсь иметь:

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"

И ассоциации:

User
 has_many :posts
 has_many :comments

Post
 belongs_to :user
 has_many :comments

Comment
 belongs_to :user
 belongs_to :post

Это правильный подход?

Это было полезно?

Решение

Да, это правильный подход.

Другие советы

Хотя Rails не всегда является «лучшим» подходом, предлагает то, что называется Полиморфный принадлежит Ассоциация. Отказ Это не позволяет вам определить внешний ключ в базе данных, потому что столбец xxx_id ссылается на идентификатор в одной из многих возможных таблиц, в то время как другой столбец обозначает имя модели этой таблицы, но это делает отношения более явными в рельсах. Кроме того, он ограничивает модель принадлежать только одной из других моделей, в отличие от принадлежности к одной или нескольким, поскольку это произойдет, используя настройку нескольких иностранных ключей без какой -либо дополнительной магии БД.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top