2010-04-07 68 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 %> 

注意,您可以定義爲許多塊,你的像,所以你可以有一個條件邊欄等。