3

Я видел много хороших примеров детской модели (скажем, «Комментарий»), принадлежащих нескольким родительским моделям («Почта», «Продукт» и т. Д.). Вот один, например: http://railscasts.com/episodes/154-polymorphic-association.Rails Полиморфные дети

Я ищу, чтобы выполнить противоположное, однако, где у родителя есть несколько полиморфных детей. Классическим примером будет «ActivityFeed», который имеет несколько типов детей («Фото», «Комментарий» и т. Д.).

Как можно было бы моделировать эти отношения в Rails?

ответ

4

Вы, вероятно, хотите использовать какой-то промежуточной записи, скажем ActivityItem, который сидит между ActivityFeed и Photo, 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 
+0

Это похоже на путь. Спасибо Джереми! –

Смежные вопросы