1

我希望在我的应用实体中实现站点范围的评论/消息功能。这将使人们能够评论以下模块

Newsletters
Reports
Tasks
and user to user (messaging) 

我的计划是创建一个名为“entity_id”的外键,它与任何单个表都不相关。相反,它与commentEntity_id 结合在一起,它是所有可以评论的表的列表。

例子:

所以评论会有一个指向Reports的 CommentEntity 和一个 entity_id,在这种情况下,它是 Reports 表的 id。

我构建它的方法是制作下表

 Comment #along with user_id and a comment body:string, this will also have a commentEntity_id and a entity_id 

 CommentInvolvement # simply everyone involved (either by commenting on the entity, or in the case of user to user, **being** the entity)

 CommentEntity # This is the join between the comment and the place
 it's put.

这将是我在 PHP 项目中的解决方案,虽然我知道 Rails 需要不同的思维方式,所以我想了解社区对这个问题的看法,这是解决这个问题的最佳方法吗?

谢谢

4

2 回答 2

3

是的,Rails 通过多态关联支持这种方法

评论.rb

belongs_to :commentable, polymorphic: true

其他型号

has_many :comments, as: :commentable

注意:您必须在评论表commentable_id(整数)和commentable_type(字符串)中添加两列

于 2014-01-13T10:44:12.923 回答
0

您还应该查看有关多态关联 d的出色RailsCast

于 2014-01-13T11:44:31.927 回答