2010-04-22 6 views
24

Quelqu'un peut-il me dire comment faire taire les avertissements de déprécation dans Rails 3?Mise en garde des avertissements de déprécation dans Rails 3

J'ai quelques situations où il lance des faux positifs. A savoir en utilisant - pour les boucles dans haml et f.error_messages à partir du plugin dynamic_form.

Merci

+0

Voulez-vous réduire au silence tous les ** ** avertissements ou simples avertissements à l'obsolescence dans certains blocs de code? – mikej

+0

de préférence juste les morceaux de code que je sais sont sûrs, mais de toute façon si je pouvais basculer ce serait bien de couper un peu de bruit de journal. – sfusion

Répondre

54

Pour réduire au silence tous les avertissements de désapprobation que vous pouvez faire:

ActiveSupport::Deprecation.silenced = true 

Cela pourrait être placé dans un initialiseur ou dans le dossier de l'environnement pour un environnement spécifique (par exemple au silence que dans la production, par exemple .)

ou pour une section de code spécifique, placez-le dans un bloc:

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

Cela fonctionne pour les deux Rails 3 & 4.

+0

les deux fonctionnent un régal, merci :) – sfusion

+6

J'ai aussi un grand ruban adhésif noir que vous pouvez mettre sur votre lumière d'huile moteur;) –

11

La réponse acceptée ne fonctionne pas pour moi avec Rails 3.2.12. Le placer dans les environnements/production.rb ou dans un initialiseur produisait toujours les avertissements. Je devais le mettre dans mon fichier de configuration/environment.rb avant l'application a été initialisé:

# 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

merci de poster, par rapport aux autres solutions, c'est la seule chose qui a fonctionné dans Rails 4 –

Questions connexes