Rails:实现可重用的Comment模型

时间:2011-02-28 04:05:20

标签: ruby-on-rails activerecord model

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

1 个答案:

答案 0 :(得分:2)

您正在寻找polymorphic associations

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

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