Визуализация гетерогенной коллекции с произвольным именем объекта - PullRequest
0 голосов
/ 21 февраля 2012

В моем приложении на Rails у меня есть @events коллекция объектов, унаследованных от Event::Base < AR::Base модели.

Если визуализировать это как render :partial => 'event', :collection => @events, можно задать опцию :as => :event для изменения имени локальной переменной, соответствующей объекту внутри партиала. Но что делать, если имя частичного не является постоянным? Вышеупомянутый способ (render @events, :as => :event) не работает.

PS. Есть решение на blog.obiefernandez.com , но оно использует последнюю часть частичного имени, и это просто мне не подходит.

1 Ответ

3 голосов
/ 04 мая 2012

Я сам не пробовал это проверить, но это может сработать:

class Event < ActiveRecord::Base

  def to_partial_path
    # assuming that you need different partials based on an attribute "variety"
    "events/#{variety}"
  end

end

Вам также может понадобиться использовать: частичный ключ, например: render :partial => @events, :as => :event вместо render @events, :as => :event

РЕДАКТИРОВАТЬ: Это работает только в Rails 3.2+ ... см. Рецензия Оби на тему .

...