2010-04-22 9 views
24

¿Puede alguien decirme cómo silenciar warinings de desaprobación en Rails 3?advertencias silenciamiento de desaprobación en los carriles 3

Tengo algunas situaciones en las que arroja falsos positivos. A saber, usar - para bucles en haml y f.error_messages del complemento dynamic_form.

Gracias

+0

¿Quieres silenciar ** ** todos los avisos de obsolescencia o sólo advertencias en bloques seleccionados de código? – mikej

+0

preferiblemente justo las piezas de código que conozco son seguros, pero de cualquier manera si podía alternar sería bueno sólo para cortar algo de ruido de registro. – sfusion

Respuesta

54

Para silenciar todos los avisos de obsolescencia que puede hacer:

ActiveSupport::Deprecation.silenced = true 

Esto podría ser colocado en un inicializador o en el archivo de entorno para un entorno específico (por ejemplo, para silenciar sólo en la producción, por ejemplo, .)

O para una sección de código específica, encerrarlo en un bloque:

ActiveSupport::Deprecation.silence do 
    # no warnings for any use of deprecated methods here 
end 

Esto funciona tanto para los carriles 3 & 4.

+0

ambos trabajan un regalo, Gracias :) – sfusion

+6

también tengo una gran cinta adhesiva negro se puede poner por encima de su luz del aceite del motor;) –

11

La respuesta aceptada no funcionaba para mí con rieles 3.2.12. La colocación de él ni en el medio ambiente/production.rb o un inicializador todavía emitida las advertencias. Tenía que ponerlo en mi archivo/environment.rb config antes de la aplicación se ha inicializado:

# Load the rails application 
require File.expand_path('../application', __FILE__) 

::ActiveSupport::Deprecation.silenced = true if Rails.env.production? 

# Initialize the rails application 
Notices::Application.initialize! 
+0

Gracias por publicar, en comparación con las otras soluciones, este es el único que trabajó en los carriles 4 –

Cuestiones relacionadas