layouts / application.html.erbで、アプリケーション全体にヘッダーを普遍的にレンダリングしています。
特定のfoo.html.erbファイルにヘッダーが表示されないようにしたいと思います。
ユニバーサルレイアウトのレンダリングを解除するための構文は何ですか?
編集:
レイアウトのコントローラーは、デバイスコントローラー、具体的にはセッションコントローラーです。
layouts / application.html.erbで、アプリケーション全体にヘッダーを普遍的にレンダリングしています。
特定のfoo.html.erbファイルにヘッダーが表示されないようにしたいと思います。
ユニバーサルレイアウトのレンダリングを解除するための構文は何ですか?
編集:
レイアウトのコントローラーは、デバイスコントローラー、具体的にはセッションコントローラーです。
コントローラでは、レイアウトをfalse(または別のレイアウト)に設定できます。falseの場合、ビューファイルにすべてのhtml、head、bodyタグが必要です。
class BarController < ApplicationController
def foo
render :layout => false # render foo.html.erb with no layout
end
end
Railsガイドのセクション2.2.11.2を参照してください:http://guides.rubyonrails.org/layouts_and_rendering.html
編集:デバイスレイアウトオーバーライドを含む
config / initializers/devise.rbにあります
Devise::SessionsController.layout "bar"
Devise::RegistrationsController.layout "foo"
Devise::ConfirmationsController.layout false # never tried this, guessing it would work
Devise::UnlocksController.layout "bar"
Devise::PasswordsController.layout "foo"
wiki投稿も参照してください-https://github.com/plataformatec/devise/wiki/How-To:-Create -custom-layoutsには少なくとも1つの他の方法があります
テンプレートfoo.html.erbをレンダリングするコントローラーとアクションが'things#foo'であり、このアクションへのパスがthings_pathであるとします。次のように、ヘッダーを条件付きタグでラップできます
<% unless request.path == things_path %>
<% end %>
。これを実現する方法はいくつかありますが、ここに1つあります。