2010-04-07 72 views
3

我不知道这样做的最佳方式是什么。Rails布局渲染与控制器条件

在我的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 %> 

注意,您可以定义为许多块,你的像,所以你可以有一个条件边栏等。