2010-04-22 10 views
24

Qualcuno può dirmi come silenziare le cautele in Rails 3?Avvisi di disattivazione del silenziamento in Rails 3

Ho alcune situazioni in cui si generano falsi positivi. Vale a dire utilizzando - per cicli in haml e f.error_messages dal plugin dynamic_form.

Grazie

+0

Vuoi mettere a tacere tutte le ** ** warning di deprecazione o semplici avvisi in blocchi selezionati di codice? – mikej

+0

preferibilmente solo i pezzi di codice che conosco sono sicuri, ma in entrambi i casi se potessi passare sarebbe bello solo per tagliare qualche rumore di registro. – sfusion

risposta

54

Per disattivare tutti i warning di deprecazione che si possono fare:

ActiveSupport::Deprecation.silenced = true 

Questo potrebbe essere collocato in un inizializzatore o nel file ambiente per un ambiente specifico (ad esempio, di mettere a tacere solo nella produzione, per esempio .)

O per una specifica sezione di codice, racchiudere in un blocco:

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

Questo funziona sia per Rails 3 & 4.

+0

entrambi funzionano a meraviglia, grazie :) – sfusion

+6

Ho anche un ottimo nastro adesivo nero che puoi mettere sopra la tua luce olio motore;) –

11

La risposta accettata non ha funzionato per me con Rails 3.2.12. Inserendolo in ambienti/production.rb o in un inizializzatore, sono stati comunque emessi gli avvertimenti. Ho dovuto mettere nel mio file/config environment.rb prima che l'applicazione è stata inizializzata:

# 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

grazie per la pubblicazione, rispetto alle altre soluzioni, questa è l'unica cosa che ha funzionato in Rails 4 –