2012-08-17 46 views

回答

4

這只不過是另一種聰明的方式來做到這一點。

你可以把在頂部的控制器的before_filter:

before_filter :have_sidebar except: [:show, :index] 
#         ^This is an example, but choose whatever views you do not want it to appear in. 

# Add this to your controller methods. 
def have_sidebar 
    @have_sidebar = true 
end 

然後在你的application.html.erb,這樣寫:

<body> 
<%=render 'layouts/menus' if @have_sidebar %> 
<%= yield %> 
<%=render 'layouts/footers' if @have_sidebar %> 
</body> 
+0

偉大的....謝謝... – 2012-08-17 09:21:45

+0

沒有汗!祝你好運! – Trip 2012-08-17 09:23:41

+0

這就是我正在尋找的.. – 2012-08-17 09:29:35

1

如果你希望在無菜單/頁腳使用的應用程序佈局這些頁面,那麼你可以做:

<body> 
<%=render 'layouts/menus' if @show_menu %> 
<%= yield %> 
<%=render 'layouts/footers' if @show_footer%> 
</body> 

其中@show_menu和@show_footer可以在別處定義。

或者,如果你不想使用的應用程序佈局,你可以改變它,例如:

render :view, :layout => "another layout" 
render :view, :layout => false # don't use any layout 
+1

我這樣做,但如果我在一個視圖中使用它它隱藏在該控制器下的所有視圖的菜單... – 2012-08-17 09:23:02