Ruby on Rails:将弃用警告视为错误,或查找已弃用的代码?

11

我最近从Rails 2升级到了Rails 3,现在我正在尝试排除所有可能已经废弃的代码。我的做法是在开发机中运行我的网站副本,然后查看控制台输出的警告。

有没有一种方法可以让Rails将废弃警告视为错误或以其他方式更高效地找到废弃代码?

1个回答

12

你可以通过设置 ActiveSupport::Deprecation.behavior 来自定义废弃调用的行为。这应该被设置为一个接受消息和调用堆栈的 Proc(过程),例如:

ActiveSupport::Deprecation.behavior = Proc.new { |message, callstack|
  raise message + "\n" + callstack.join("\n  ")
}

如果您的应用程序有自动化测试,那么在升级使用的Rails版本时这些测试非常有价值。


Proc 应该放在哪里? - Iván Cortés
1
@Iván,你可以将这个放在自己的文件中,例如config/initializers/deprecation.rb。另外请注意,在Rails的较新版本中,如果您想在弃用调用时引发异常,可以使用ActiveSupport::Deprecation.behavior = :raise,而不需要编写自己的Proc - mikej
非常清晰,尤其是因为我正在使用RoR 5。感谢@mikej。 - Iván Cortés

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接