Рендеринг частичного в файл макета с данными - PullRequest
0 голосов
/ 02 апреля 2011

Навигация для моего сайта, очевидно, хранится в файле макета приложения. Часть этой навигации управляется базой данных. Как визуализировать партиал в макете и передать коллекцию объектов для его визуализации?

EDIT: Я думаю, что мой вопрос вращается больше о том, как получить данные в частичное, это сделано из контроллера приложения, или я должен добавить данные в каждом действии на каждом контроллере?

1 Ответ

2 голосов
/ 02 апреля 2011

Если вы просто хотите передать один объект, вы можете использовать клавишу object на render.Переданный объект будет доступен как локальная переменная с тем же именем, что и частичное.SO, если частичное называется navigation, локальная переменная будет navigation.

<%= render :partial => 'foo/navigation', :object => @my_collection

В частичном:

<% for obj in navigation %>
  ...
<% end %>

Если вы хотите передать несколько объектов, вы можетеиспользуйте клавишу locals.Имена локальных переменных в вашем макете являются ключами переданного хэша.

<%= render :partial => 'foo/navigation', :locals => { :foo => 'Hello', :bar => 'World' }

В частичном:

<%= foo %>
<%= bar %>
...