我正在layouts / application.html.erb中的应用程序中普遍呈现标题。
我想让标题不出现在特定的foo.html.erb文件中。
取消渲染通用布局的语法是什么?
编辑:
布局的控制器是设备控制器,特别是会话控制器。
答案 0 :(得分:3)
在您的控制器中,您可以将布局设置为false(或其他布局),如果为false则需要视图文件中的所有html,head,body标记
class BarController < ApplicationController
def foo
render :layout => false # render foo.html.erb with no layout
end
end
请参阅导轨指南中的第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 :(得分:1)
假设呈现模板foo.html.erb的控制器和操作是'things#foo',此操作的路径是things_path。您可以将标头包装在条件标签中,如下所示
<% unless request.path == things_path %>
<% end %>
。有几种方法可以实现这一点,但这里有一个。