4

layouts / application.html.erbで、アプリケーション全体にヘッダーを普遍的にレンダリングしています。

特定のfoo.html.erbファイルにヘッダーが表示されないようにしたいと思います。

ユニバーサルレイアウトのレンダリングを解除するための構文は何ですか?

編集:

レイアウトのコントローラーは、デバイスコントローラー、具体的にはセッションコントローラーです。

4

2 に答える 2

3

コントローラでは、レイアウトを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つの他の方法があります

于 2012-06-10T21:44:42.683 に答える
1

テンプレートfoo.html.erbをレンダリングするコントローラーとアクションが'things#foo'であり、このアクションへのパスがthings_pathであるとします。次のように、ヘッダーを条件付きタグでラップできます

<% unless request.path == things_path %>
<% end %>

。これを実現する方法はいくつかありますが、ここに1つあります。

于 2012-06-10T21:09:45.057 に答える