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至少有另一种方式

于 2012-06-10T21:44:42.683 回答
1

假设呈现模板 foo.html.erb 的控制器和操作是“things#foo”,并且该操作的路径是 things_path。您可以将标题包装在条件标签中,如下所示

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

. 有几种方法可以实现这一点,但这里有一种。

于 2012-06-10T21:09:45.057 回答