Rails:实现可重用的Comment模型

我有一个评论模型,我也有一个video和照片模型。 现在,我想让我的video和照片模型有have_many评论,但这意味着我的评论模型必须拥有一个belongs to :video和一个belongs_to :model (以及数据库中每个模型的外键)。 现在说我在同一个应用程序中创建了一个Post模型,我希望它有很多注释,这意味着我必须将belongs_to :post添加到我的Comment类中。 在rails中有更好的方法来实现Comment模型,当有许多其他模型与它有关联时,或者这是如何完成的? 任何建议将不胜感激。

你正在寻找多态关联 。

 class Comment < ActiveRecord::Base belongs_to :commentable, :polymorphic => true end class Photo < ActiveRecord::Base has_many :comments, :as => :commentable end class Video < ActiveRecord::Base has_many :comments, :as => :commentable end 

您还必须对迁移进行一些更改,有关详细信息,请参阅链接的文档。