2012-06-10 20 views

回答

0

假設呈現模板foo.html.erb的控制器和動作是'things#foo',並且此動作的路徑是things_path。您可以按如下方式將標頭包裝在條件標籤中:

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

。有幾種方法可以做到這一點,但這裏有一個。

+0

的一個缺點是,條件是聯繫在一起的控制器渲染的模板,而不是控制器本身,所以,除非你指定的上述條件的每個通往模板foo.html.erb的路徑,頭部仍然可以通過其他控制器操作呈現。 – cdesrosiers

+0

工作!感謝您的幫助 –

2

在你的控制器,你可以設置佈局,以虛假(或其他佈局),如果爲假,則你需要所有的HTML,頭部,身體標記在你的視圖文件

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

編輯:包括設計佈局覆蓋

在配置/初始化/ 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" 

也看到了維基崗位 - https://github.com/plataformatec/devise/wiki/How-To:-Create-custom-layouts有至少一個其他的方式

+0

如果控制器是隱藏的設備控制器,該怎麼辦? –

+0

更新信息的設計佈局 – house9

+0

也忘了提及,如果更改config/initializers中的文件,您可能需要重新啓動rails服務器才能看到更改 – house9