54

我确实发现了一些关于 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

这是正确的方法吗?

4

2 回答 2

58

是的,这是正确的方法。

于 2010-10-12T05:25:56.603 回答
10

尽管并不总是“最佳”方法,Rails 提供了所谓的Polymorphic belongs_to 关联。它会阻止您在数据库中定义外键,因为 xxx_id 列引用了许多可能表之一中的 id,而另一列指定了该表模型的名称,但它使关系在 Rails 中更加明确。此外,它将模型限制为仅属于其他模型之一,而不是属于一个或多个模型,因为它会在使用多个外键的设置时发生,而无需一些额外的数据库魔法。

于 2011-07-16T19:17:08.743 回答