我有一个评论模型,我还有一个视频和照片模型。现在,我想要我的视频和照片模型have_many
评论,但这意味着我的评论模型必须有belongs to :video
和belongs_to :model
(以及每个模型的外键)在数据库中)。现在说我在同一个应用程序中创建一个Post模型,我希望它有很多注释,这意味着我必须将belongs_to :post
添加到我的Comment类中。在rails中有更好的方法来实现Comment模型,当有许多其他模型与它有关联时,或者这是如何完成的?任何建议都将不胜感激。
答案 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
您还必须对迁移进行一些更改,有关详细信息,请参阅链接的文档。