2010-04-07 3 views
3

Я не знаю, как лучше всего это сделать.Rails Layout Rendering с контроллером

На моем application.html.erb я определяю заголовок div.

Мой контроллер по умолчанию (root) является домашним контроллером. И я хочу, чтобы, если я нахожусь в индексе главной страницы, заголовок представляет собой рендеринг с некоторым контентом, но все остальные контроллеры отображают другой контент внутри этого заголовка.

Как я могу создать условие в этом заголовке div для визуализации различного контента на основе контроллера, который отображается?

ответ

6

Вы можете использовать вспомогательный помощник content_for, чтобы определить блок разметки в отдельных шаблонах представлений, которые получены из макета приложения.

application.html.erb:

<div id="header"> 
    <%= yield :header %> 
</div> 

Затем включает в себя код, как это в любом месте в шаблоне вида представления контроллера:

<% content_for :header do %> 
    This is a controller-specific header. 
<% end %> 

Обратите внимание, что вы можете определить, как многие из этих блоков, как вы например, вы также можете иметь условную боковую панель и т. д.

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