2010-12-10 34 views

Trả lời

97

Bạn có thể phân lớp điều khiển và cấu hình router để sử dụng:

class SessionsController < Devise::SessionsController 
    layout false 
end 

Và trong config/routes.rb:

devise_for :users, :controllers => { :sessions => "sessions" } 

Bạn cần phải di chuyển các quan điểm phiên để điều khiển này quá.

HOẶC tạo ra một phương pháp trong app/controllers/application_controller.rb:

class ApplicationController < ActionController::Base 

    layout :layout 

    private 

    def layout 
    # only turn it off for login pages: 
    is_a?(Devise::SessionsController) ? false : "application" 
    # or turn layout off for every devise controller: 
    devise_controller? && "application" 
    end 

end 
+2

Cảm ơn; phương pháp thứ hai của bạn chỉ là những gì tôi đang tìm kiếm! – neezer

+0

Cảm ơn lời khuyên, điều đó thực sự đã giúp tôi. Tuy nhiên, chỉ có dòng này làm việc cho tôi 'is_a? (Devise :: SessionsController)? false: "application" ' –

+2

kiểm tra thứ hai phải là'! devise_controller? && "application" 'chú ý' not' ở đó. Nhưng nếu không nó hoạt động như một nét duyên dáng :) –

35

Bạn cũng có thể tạo một file sessions.html.erb trong app/views/layouts/đưa ra. Sau đó, bố cục đó sẽ chỉ được sử dụng cho màn hình đăng nhập.

+1

Cảm ơn !! Mặc dù tôi nghĩ rằng đây không phải là thực sự trả lời câu hỏi, nó đã được chính xác những gì tôi đang tìm kiếm :) – dgilperez

7

Bằng cách sử dụng devise_controller? helper bạn có thể xác định khi một bộ điều khiển Devise đang hoạt động và đáp ứng cho phù hợp. Để có lập mưu sử dụng một cách bố trí riêng biệt với phần còn lại của ứng dụng của bạn, bạn có thể làm một cái gì đó như thế này:

class ApplicationController < ActionController::Base 
    layout :layout_by_resource 

    protected 

    def layout_by_resource 
    if devise_controller? 
     "devise" 
    else 
     "application" 
    end 
    end 
end 

tạo một file devise.html.erb trong quan điểm của bạn/layouts

Vì vậy, nếu nó là một thiết bị bộ điều khiển sẽ hiển thị bố cục thiết kế khác bố cục ứng dụng

từ: https://github.com/plataformatec/devise/wiki/How-To:-Create-custom-layouts

Các vấn đề liên quan