Hi I am using Devise for my user authentication suddenly my new user registration was not working.
this was error I am getting.
ActionController::In
Per the comments in the core application_controller.rb, set protect_from_forgery to the following:
protect_from_forgery with: :null_session
Alternatively, per the docs, simply declaring protect_from_forgery without a :with argument will utilize :null_session by default:
protect_from_forgery # Same as above
UPDATE:
This seems to be a documented bug in the behavior of Devise. The author of Devise suggests disabling protect_from_forgery on the particular controller action that's raising this exception:
# app/controllers/users/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
skip_before_filter :verify_authenticity_token, :only => :create
end
For Rails 5 it could be due to the order in which protect_from_forgery and your before_actions are triggered.
I faced a similar situation recently, even though protect_from_forgery with: :exception was the first line in the ApplicationController, the before_action's were still interfering.
The solution was to change:
protect_from_forgery with: :exception
to:
protect_from_forgery prepend: true, with: :exception
There's a blog post about it here http://blog.bigbinary.com/2016/04/06/rails-5-default-protect-from-forgery-prepend-false.html