Rails属于许多模型

我确实发现了一些关于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列在许多可能的表中的一个引用了一个id,而另一个列指定了该表模型的名字,但是它使得这个关系在rails中更加明确。 此外,它限制模型只属于其他模型之一,而不属于一个或多个,因为它会发生使用多个外键的设置没有一些额外的数据库魔术。

Interesting Posts