0

我在我正在使用的布局文件夹中创建了一个 menu.html.erb 页面

<body>
<%=render 'layouts/menus'%>
<%= yield %>
<%=render 'layouts/footers'%>
</body>

在 application.html.rb 我的问题是这个菜单和页脚适用于我不想要的所有页面。

想要一些没有这些菜单和页脚的页面

请问有什么帮助吗???

4

2 回答 2

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>
于 2012-08-17T08:28:58.520 回答
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
于 2012-08-17T08:07:51.297 回答