Rails 5にアップグレードしましたが、すべてがスムーズに進みましたが、skip_before_action
の後に呼び出されるメソッドが原因で、このメッセージでrspecを実行できません
Process_actionコールバック前:redirect_heroku_userが定義されていません(ArgumentError)
Rails 4でうまく機能するため、これは非常に奇妙です。ここに私のコードがあります:
# application_controller.rb
def redirect_heroku_user
redirect_to root_path if heroku_user?
end
# some_controller.rb
skip_before_action :redirect_heroku_user, only: :edit
this thread によると
ActiveSupport :: Callbacks #
skip_callback
は、認識されないコールバックが削除された場合、ArgumentErrorを発生させます。
したがって、あなたの解決策はraise: false
オプションをskip_before_action
に渡すことです:
skip_before_action :redirect_heroku_user, raise: false
詳細は changelog を参照してください。
Rails 5、メソッドredirect_heroku_user
が同じコントローラで定義されていない場合、この例外が発生します。
raise: false
ここで言及 としてそれを回避するには:
skip_before_action :redirect_heroku_user, only: :edit, raise: false