Как эффективно создать «канал» из нескольких моделей Rails?

Это продолжение Создание «лент» из нескольких различных моделей Rails . В этом вопросе tadman предлагает этот метод создания пользовательского фида последних элементов из трех моделей (Ticket, Post, Report):

 @items = [ Ticket, Post, Report ].inject([ ]) do |a, with_class|
   a + with_class.find(:all, :limit => 10, :order => 'created_at DESC')
 end.sort_by(&:created_at).reverse[0, 10]

Он предлагает это как метод, который будет работать, но он не обязательно будет самым лучшим. Он также предлагает альтернативный метод - «создать индексную таблицу, имеющую полиморфную связь с различными записями».

Мне действительно интересно узнать больше об этом альтернативном решении, оно кажется более эффективным. и более элегантный. Может ли кто-нибудь сказать мне, как это сделать? Давайте возьмем за основу ту же справочную информацию из последнего вопроса.

8
задан Community 23 May 2017 в 12:24
поделиться