使用しているレイアウトフォルダに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の私の問題は、このメニューとフッターが不要なすべてのページに適用されることです。
これらのメニューとフッターがないページが欲しい
助けてください???
これは、これを行うためのもう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>
メニュー/フッターのないページでアプリケーションレイアウトを使用する場合は、次の操作を実行できます。
<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