0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Rails】非推奨警告(deprecation warning)の扱いを変えたい場合はconfig.active_support.deprecationを変更する

Posted at

はじめに

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のバージョンアップに携わる中でこの設定について学べました。

引き続きバージョンアップ作業を通じて学んだことをアウトプットしていきます。

この記事に誤りがありましたら、コメントにてご指摘いただけると幸いです。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?