はじめに
Railsのデフォルト設定では、非推奨機能を使うとログに警告が出力されます。
ただしログを見落としてしまうと、警告を見逃していつまでも非推奨機能を使い続けてしまう恐れがあります。
これを避けるため非推奨機能を使った際にエラーを発生させたいです。
この記事ではこういった、非推奨機能を利用時の挙動を設定変更する方法をまとめます。
非推奨(deprecation warning)の扱いを変えたい場合はconfig.active_support.deprecation
を変更する
結論として、config.active_support.deprecation
で非推奨機能を使用時の挙動が指定できます。
各環境の設定ファイルにconfig.active_support.deprecation
が記述されているため、要件に合わせて変更すればOKです。
たとえば、開発環境で非推奨機能の使用時に例外を発生させたい場合、次のように修正します。
config/environments/development.rb
require "active_support/core_ext/integer/time"
Rails.application.configure do
# ...
# デフォルトでは :log が設定されているが :raise に変更
config.active_support.deprecation = :raise
# ...
end
するとActiveSupport::DeprecationException
が発生します。
設定項目には以下のバリエーションがあるようです。
-
:raise
:エラー発生 -
:stderr
:標準エラー(STDERR)に出力 -
:log
:ログに出力 -
:notify
:ActiveSupport::Notificationsで通知 -
:report
:ActiveSupport::ErrorReporterで出力 -
:silence
:何もしない
詳細は以下のドキュメントに記載されています。
おわりに
Railsのバージョンアップに携わる中でこの設定について学べました。
引き続きバージョンアップ作業を通じて学んだことをアウトプットしていきます。
この記事に誤りがありましたら、コメントにてご指摘いただけると幸いです。
参考資料