2010-12-10 14 views

Respuesta

97

Puede subclase el controlador y configurar el router para utilizar ese:

class SessionsController < Devise::SessionsController 
    layout false 
end 

Y en config/routes.rb:

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

tiene que mover los puntos de vista de sesión a este controlador también.

O crea un método en el 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

Gracias; ¡Tu segundo método fue justo lo que estaba buscando! – neezer

+0

Gracias por el consejo, realmente me ayudó. Sin embargo, solo esta línea funcionó para mí 'is_a? (Devise :: SessionsController)? falso: "aplicación" ' –

+2

el segundo cheque debería ser'! devise_controller? && "aplicación" 'observe el' no' allí. Pero de lo contrario, esto funciona como un encanto :) –

35

También puede crear un archivo sessions.html.erb en app/views/layouts/idear. Ese diseño se usará solo para la pantalla de inicio de sesión.

+1

¡Gracias! Aunque creo que esto no responde realmente a la pregunta, era exactamente lo que estaba buscando :) – dgilperez

7

Al usar el control_devise_controller? ayudante puede determinar cuándo un controlador Devise está activo y responder en consecuencia. Tener Diseñar utilizar un diseño independiente al resto de la aplicación, se podría hacer algo como esto:

class ApplicationController < ActionController::Base 
    layout :layout_by_resource 

    protected 

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

crear un archivo devise.html.erb en sus views/layouts

así que si es un dispositivo controlador renderizará el legado de lo contrario el diseño de la aplicación

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

Cuestiones relacionadas