2010-04-22 41 views
24

任何人都可以告诉我如何沉默Rails 3中的弃用警告?沉默在Rails 3中的弃用警告3

我有几种情况,它是抛出误报。即在dynamic_form插件中使用haml和f.error_messages中的for循环。

感谢

+0

是否要在选定的代码块中使所有**弃用警告或仅警告? – mikej 2010-04-22 09:52:39

+0

最好只是我知道的代码段是安全的,但无论哪种方式,如果我可以切换它只是为了削减一些日志噪音。 – sfusion 2010-04-22 12:46:02

回答

54

要关闭所有废弃警告,你可以这样做:

ActiveSupport::Deprecation.silenced = true 

这可以被放置在初始化或者在环境中的文件在特定的环境(例如,在生产中,例如只有沉默。)

或为特定的代码段,它括在块:

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

这适用于两个轨道3 & 4.

+0

既工作又好吃,谢谢:) – sfusion 2010-04-22 13:44:10

+6

我也有一些很棒的黑色胶带可以放在你的发动机机油灯上;) – 2013-12-19 01:22:43

11

接受的答案并没有为我使用Rails 3.2.12工作。将其放置在environments/production.rb或初始化程序中仍会输出警告。我必须在应用程序初始化之前将其放入我的config/environment.rb文件中:

# 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

感谢你发帖,相比于其他的解决方案,这是唯一能在Rails里工作的东西4 – 2014-03-13 18:40:36