Ruby on Rails:将弃用警告视为错误或以其他方式查找已弃用的代码?

Wil*_*nes 10 ruby-on-rails deprecated

我最近从Rails 2升级到Rails 3,我正在尝试根除我可能拥有的所有已弃用的代码.我这样做的方法就是浏览我在开发机器上运行的站点副本,并从控制台的输出端查看警告.

有没有办法让Rails将弃用警告视为错误或以其他方式更有效地查找弃用的代码?

mik*_*kej 11

您可以通过设置自定义已弃用的呼叫的行为ActiveSupport::Deprecation.behavior.这应该设置为Proc接受消息和callstack,例如你可以这样做:

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

如果您对应用程序进行了自动化测试,则在升级所使用的Rails版本时这些测试非常有用.