Ruby on Rails: Рассматривать предупреждения об устаревании как ошибки или иным образом находить устаревший код? - PullRequest
10 голосов
/ 10 января 2011

Я недавно обновил с Rails 2 до Rails 3, и я пытаюсь искоренить весь код, который я мог иметь, который устарел.Я делаю это, просто просматривая копию моего сайта, работающего на компьютере разработчика, и вглядываясь в выходные данные консоли для получения предупреждений.

Есть ли способ заставить Rails обрабатывать предупреждения об устареваниикак ошибки или иным образом найти устаревший код более эффективно?

1 Ответ

11 голосов
/ 10 января 2011

Вы можете настроить поведение устаревших вызовов, установив ActiveSupport::Deprecation.behavior.Это должно быть установлено на Proc, который принимает сообщение и стек вызовов, например, вы можете сделать:

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

Если у вас есть автоматические тесты для вашего приложения, они неоценимы при обновлении используемой версии Rails.

...