I just upgraded to Rails 5 and everything went pretty smoothy but for no apparent reason a method that is called after skip_before_action
is not allowing rspec to run with this message
Before process_action callback :redirect_heroku_user has not been defined (ArgumentError)
It is super strange because it works just fine on rails 4. Here is my code:
# 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
According to this thread
ActiveSupport::Callbacks#
skip_callback
now raises an ArgumentError if an unrecognized callback is removed.
So your solution is to pass raise: false
option to skip_before_action
:
skip_before_action :redirect_heroku_user, raise: false
See the changelog for more info.
In Rails 5, if the method redirect_heroku_user
is not defined in the same controller, then it raises this exception.
You can pass raise: false
to avoid it as mentioned here:
skip_before_action :redirect_heroku_user, only: :edit, raise: false
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With