我的情况是有几种不同的模型可以有评论。试图找出关系:
Post
has_many :comments
Update
has_many :comments
Comment
belongs_to EITHER :post OR :update (but not both)????
建立评论关系的正确方法是什么?我希望能够拨打Post.comments
和Update.comments
答案 0 :(得分:5)
对于多态关联,模型可以属于单个关联上的多个其他模型。例如,您可能拥有属于员工模型或产品模型的图片模型。
所以你想要这样的东西:
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end
class Post < ActiveRecord::Base
has_many :comments, :as => :commentable
end
class Update < ActiveRecord::Base
has_many :comments, :as => :commentable
end
您必须在数据库中设置一些内容才能使其正常工作。有关您需要的列的详细信息,请参阅Polymorphic Associations的Active Record Associations Guide部分。