Rails多形儿童

时间:2013-09-15 03:35:17

标签: ruby-on-rails ruby activerecord polymorphism polymorphic-associations

我见过许多属于多个父模型('Post','Product'等)的儿童模型(例如,'评论')的好例子。这是一个,例如:http://railscasts.com/episodes/154-polymorphic-association

我希望完成相反的事情,其中​​父母有多个多态孩子。一个典型的例子是'ActivityFeed',它有多种类型的孩子('Photo','Comment'等)。

如何在Rails中建模这种关系?

1 个答案:

答案 0 :(得分:4)

您可能想要使用位于ActivityItemActivityFeedPhoto等之间的某种中间记录,例如Comment ...

class ActivityFeed < ActiveRecord::Base
  has_many :activity_items
end

class ActivityItem < ActiveRecord::Base
  belongs_to :activity_feed
  belongs_to :item, :polymorphic => true
end

class Photo < ActiveRecord::Base
  has_many :activity_items, :as => :item
end

class Comment < ActiveRecord::Base
  has_many :activity_items, :as => :item
end