我在 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至少有另一种方式
假设呈现模板 foo.html.erb 的控制器和操作是“things#foo”,并且该操作的路径是 things_path。您可以将标题包装在条件标签中,如下所示
<% unless request.path == things_path %>
<% end %>
. 有几种方法可以实现这一点,但这里有一种。