我最近从Rails 2升级到了Rails 3,现在我正在尝试排除所有可能已经废弃的代码。我的做法是在开发机中运行我的网站副本,然后查看控制台输出的警告。
有没有一种方法可以让Rails将废弃警告视为错误或以其他方式更高效地找到废弃代码?
我最近从Rails 2升级到了Rails 3,现在我正在尝试排除所有可能已经废弃的代码。我的做法是在开发机中运行我的网站副本,然后查看控制台输出的警告。
有没有一种方法可以让Rails将废弃警告视为错误或以其他方式更高效地找到废弃代码?
你可以通过设置 ActiveSupport::Deprecation.behavior
来自定义废弃调用的行为。这应该被设置为一个接受消息和调用堆栈的 Proc
(过程),例如:
ActiveSupport::Deprecation.behavior = Proc.new { |message, callstack|
raise message + "\n" + callstack.join("\n ")
}
如果您的应用程序有自动化测试,那么在升级使用的Rails版本时这些测试非常有价值。
Proc
应该放在哪里? - Iván Cortésconfig/initializers/deprecation.rb
。另外请注意,在Rails的较新版本中,如果您想在弃用调用时引发异常,可以使用ActiveSupport::Deprecation.behavior = :raise
,而不需要编写自己的Proc
。 - mikej