Silencing Deprecation warnings in Rails 3

前端 未结 3 1474
天命终不由人
天命终不由人 2020-12-15 17:04

Can anyone tell me how to silence deprecation warinings in Rails 3?

I have a few situations where it is throwing false positives. Namely using - for loops in haml an

相关标签:
3条回答
  • 2020-12-15 17:25

    Ryan Daigle wrote an article about this, in which he also showed how you can intercept the deprecation warning and do something else with it, like send it to a log file:

    ActiveSupport::Deprecation.behavior = Proc.new { |msg, stack| MyLogger.warn(msg) }
    

    http://ryandaigle.com/articles/2006/12/4/how-to-turn-deprecation-warnings-off-in-rails

    0 讨论(0)
  • 2020-12-15 17:28

    The accepted answer didn't work for me with Rails 3.2.12. Placing it in either the environments/production.rb or an initializer still outputted the warnings. I had to put it in my config/environment.rb file before the application was initialized:

    # 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 讨论(0)
  • 2020-12-15 17:46

    To silence all deprecation warnings you can do:

    ActiveSupport::Deprecation.silenced = true
    

    This could be placed in an initializer or in the environment file for a specific environment (e.g. to silence only in production for example.)

    Or for a specific section of code, enclose it in a block:

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

    This works for both Rails 3 & 4.

    0 讨论(0)
提交回复
热议问题