我确实发现了一些关于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
这是正确的方法吗?
答案 0 :(得分:52)
是的,这是正确的方法。
答案 1 :(得分:10)
虽然并非总是“最佳”方法,但Rails提供了所谓的Polymorphic belongs_to association。它阻止您在数据库中定义外键,因为xxx_id列在许多可能的表之一中引用了id,而另一列指定了该表模型的名称,但它使得Rails中的关系更加明确。此外,它将模型限制为仅属于其他模型之一,而不是属于一个或多个,因为使用多个外键的设置而没有一些额外的db魔法会发生。