2012-08-17 45 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