Rails属于许多模型

Zab*_*bba 53 activerecord ruby-on-rails belongs-to

我确实发现了一些关于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"
Run Code Online (Sandbox Code Playgroud)

协会:

User
 has_many :posts
 has_many :comments

Post
 belongs_to :user
 has_many :comments

Comment
 belongs_to :user
 belongs_to :post
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

Max*_*xem 56

是的,这是正确的方法.

  • 这些是一对多关系(一个用户有很多帖子等),因此没有.注释表应如下所示:id user_id post_id和ofc content或者其他. (5认同)
  • 这个问题和它的答案解释了如何做得很好:http://stackoverflow.com/questions/11539151/rails-mulitple-belongs-to-assignment (4认同)

小智 10

虽然并非总是"最佳"方法,但Rails提供了所谓的多态属于关联.它阻止您在数据库中定义外键,因为xxx_id列在许多可能的表之一中引用了id,而另一列指定了该表模型的名称,但它使得Rails中的关系更加明确.此外,它将模型限制为仅属于其他模型之一,而不是属于一个或多个,因为使用多个外键的设置而没有一些额外的db魔法会发生这种情况.