2012-01-24 10 views
7

Estoy usando Rails 3.2.0 y Devise 2.0.0.rc2. Cuando ejecuto mis especificaciones, recibo una advertencia de desaprobación que no veo cuando normalmente inicio mi servidor de Rails.Desventaja 2.0 'layout_by_resource' advertencias de desactivación al ejecutar las especificaciones

$ rake 
.DEPRECATION WARNING: Layout found at "devise" for 
DeviseController but parent controller set layout to :layout_by_resource. 
Please explicitly set your layout to "devise" or 
set it to nil to force a dynamic lookup. 
(called from realtime at 
/Users/foo/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/benchmark.rb:310) 

Mi /app/controllers/application_controller.rb parece:

class ApplicationController < ActionController::Base 
    protect_from_forgery 

    layout :layout_by_resource 

    protected 

    def layout_by_resource 
    if devise_controller? 
     if resource_name == :agent && action_name == 'new' 
     nil 
     elsif resource_name == :admin && action_name == 'new' 
     nil 
     else 
     'devise' 
     end 
    else 
     'application' 
    end 
    end 

end 

Cualquier idea de por qué estoy viendo estas advertencias?

Respuesta

3

Desde Rails 3.2 el diseño se buscará automáticamente. Cuando utiliza una vista en la carpeta 'idear', Rails es lo suficientemente inteligente como para buscar el diseño 'idear' en la carpeta de diseños. Eliminar este código resolvería las advertencias de depreciación.

Sin embargo, esto significa que los recursos de administrador y agente usarán el diseño del dispositivo. No sé cómo arreglar este blanqueamiento obteniendo la misma advertencia de depreciación.

6

Si desea deshacerse de los mensajes, la solución más fácil es, en realidad, cambiar el nombre de su plantilla de diseño a otra que no sea devise.html.erb, es decir, a devise_layout.html.erb. Por supuesto, usted ajusta su función layout_by_resource para que coincida con el nuevo nombre.

Esto detendrá los mensajes de obsolescencia en sus pruebas y los volverá a leer.

+0

Esto funcionó para mí. – Drew

Cuestiones relacionadas