そのロジックは、スタイルシート、コントローラー、またはビューに配置できます (この最後のものは、コントローラー全体のみ)。
スタイルシート
スタイルシートにロジックを追加する場合は、最初に body タグに次のクラスを追加します。
<body class="<%= "#{controller.controller_name} #{controller.action_name}" %>">
次に、CSS に次のようなものを追加します。
body.controller.action .navbar {
display: none;
}
コントローラ
このロジックをコントローラーに追加するには、アプリケーション コントローラーに before フィルターを追加します。
class ApplicationController < ActionController::Base
before_filter :show_navbar
protected
def show_navbar
@show_navbar = true
end
end
次に、CarsController でナビゲーション バーを表示したくない場合は、次のようにします。
class CarsController < ApplicationController
skip_before_filter :show_navbar, only: [list, of, actions]
end
[list, of, actions]
ナビゲーションバーを表示したくないアクションはどこにありますか。
最後に、レイアウトを次のように変更します。
<% if @show_navbar -%>
<%= render 'layouts/header' %>
<% end -%
ビュー
コントローラー全体のヘッダーを無効にする場合は、最初にヘッダーを移動し、app/views/application/
レンダリングを次のように変更します。
<%= render partial: 'header' %>
最後に、navbar のないコントローラーでは、空_header.html.erb
をに追加しますapp/views/controller_name
。
このオプションが機能するには、少なくとも Rails 3.1 が必要です。