我在我正在使用的布局文件夹中创建了一个 menu.html.erb 页面
<body>
<%=render 'layouts/menus'%>
<%= yield %>
<%=render 'layouts/footers'%>
</body>
在 application.html.rb 我的问题是这个菜单和页脚适用于我不想要的所有页面。
我想要一些没有这些菜单和页脚的页面
请问有什么帮助吗???
我在我正在使用的布局文件夹中创建了一个 menu.html.erb 页面
<body>
<%=render 'layouts/menus'%>
<%= yield %>
<%=render 'layouts/footers'%>
</body>
在 application.html.rb 我的问题是这个菜单和页脚适用于我不想要的所有页面。
我想要一些没有这些菜单和页脚的页面
请问有什么帮助吗???
这只是另一种聪明的方法。
您可以在控制器顶部放置一个 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>
如果您希望那些没有菜单/页脚的页面使用应用程序布局,那么您可以执行以下操作:
<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