0

使用しているレイアウトフォルダにmenu.html.erbページを作成しました

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

application.html.rbの私の問題は、このメニューとフッターが不要なすべてのページに適用されることです。

これらのメニューとフッターがないページが欲しい

助けてください???

4

2 に答える 2

4

これは、これを行うためのもう1つの賢い方法です。

コントローラの上部に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 に答える