Ruby on rails 接近属于多种可能模型之一的模型的最佳方法

Ruby on rails 接近属于多种可能模型之一的模型的最佳方法,ruby-on-rails,Ruby On Rails,假设我有一堆模型、文章、下载、视频、图片,我希望能够用一个评论模型对所有这些模型发表评论,这样我就可以跟踪某个用户在所有这些模型上发表的评论。最好的方法是什么?这正是多态关联设计的目的 检查 基本上你会这样做: Class User < ActiveRecord::Base has_many :comments end class Comment < ActiveRecord::Base belongs_to :commentable, :polymorphic =>

假设我有一堆模型、文章、下载、视频、图片,我希望能够用一个评论模型对所有这些模型发表评论,这样我就可以跟踪某个用户在所有这些模型上发表的评论。最好的方法是什么?

这正是多态关联设计的目的

检查

基本上你会这样做:

Class User < ActiveRecord::Base
  has_many :comments
end

class Comment < ActiveRecord::Base
  belongs_to :commentable, :polymorphic => true
  belongs_to :user
end

class Video < ActiveRecord::Base
  has_many :comments, :as => :commentable
end
class Article < ActiveRecord::Base
  has_many :comments, :as => :commentable
end
# ... so on
Class用户true
属于:用户
结束
类视频:可评论
结束
类文章:可评论
结束
# ... 等等

查看上面的链接了解如何设计迁移。您需要的是
commentable\u id
commentable\u type
列,而不是示例中使用的可成像列。

环顾四周后,如果其他人也在查看,我发现这也非常有帮助