删除特定rails .html.erb文件中的标头呈现

时间:2012-06-10 21:04:48

标签: html ruby-on-rails

我正在layouts / application.html.erb中的应用程序中普遍呈现标题。

我想让标题不出现在特定的foo.html.erb文件中。

取消渲染通用布局的语法是什么?

编辑:

布局的控制器是设备控制器,特别是会话控制器。

2 个答案:

答案 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 %>

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