はじめに
Rails 5以降で、before_filter
が廃止され、before_action
に変更されました。この変更により、古いコードをそのまま使おうとするとエラーが発生します。この記事では、この変更の理由と簡単な対処法を紹介します。
変更の理由
-
一貫性: 他のフィルタ(
after_action
やaround_action
)と命名を統一するために変更されました。 -
直感的な名前:
before_action
という名前の方が、アクションの前に実行するという意味が明確です。
対処法
before_filter
を使用している場合、before_action
に置き換えるだけです。
変更例
変更前:
before_filter :authenticate_user
変更後:
before_action :authenticate_user
このように、before_filter
をすべてbefore_action
に書き換えてください。
一括置換
複数のファイルで使用している場合、以下のコマンドで一括置換ができます。
grep -rl 'before_filter' app/ | xargs sed -i '' 's/before_filter/before_action/g'
まとめ
before_filter
はRails 5以降で廃止されましたので、before_action
に変更することでエラーを解消できます。これで、Railsのアップデートも安心して進められます。