2014-01-19 92 views
1

我是RoR的新手,並使用佈局/局部/渲染,所有這些好東西來製作應用。在我的應用程序的開始,我想我會使用相同的頭整個應用程序,從而寫道:爲特定頁面呈現特定頁眉

render 'layouts/header' 

在我application.html.erb文件。現在,我意識到對於某些頁面(即註冊頁面和博客),我想使用名爲simple_header的簡化標題。難道我喜歡寫東西

<%= if @simple_header 
     render 'layouts/simple_header' 
    else 
     render 'layouts/header' 
%> 

,然後測試,如果@simple_header是真還是東西控制器,或是否有更好的方式來做到這一點。謝謝。

回答

3

在rails中,您可以創建不同的佈局並選擇用於特定操作或控制器的佈局。

關注此railscast http://railscasts.com/episodes/7-all-about-layouts

這應該幫助您解決問題。

。例如,

app/views/layouts,比方說,simple_header.html.erb並在您的控制器創建一個新的佈局,告訴它使用該佈局。

class BlogController < ApplicationController 
layout :simple_header 

def index 
end 

end 
1

而且(如果你有簡單的邏輯)考慮使用

CURRENT_PAGE?

方法是這樣的:

<% if current_page?(controller: 'sites', action: 'index') %> 
... 
<% else %> 
... 
<% end%>