I bumped into the following error when I was creating API program. The origin was devise gem.
NoMethodError (undefined method `failure_app’ for nil:NilClass)
Environment
- Ruby 2.2.3p173
- Rails 4.2.4
- devise 3.5.2
Origin
I used sign_in
method for unauthorized user.
The API in construction, we have to make unauthorized user able to login, so I wrote logging in procedure for all users, including unauthorized users. Then, devise and warden rejected unauthorized user and raised error.
Solution
Write the following setting into config/initializer/devise.rb
.
1 |
config.allow_unconfirmed_access_for = 2000.years |
Or write the following method into the model class that is used by devise for authentication. User class for example.
1 2 3 4 |
private def confirmation_period_valid? return true end |
I recommend latter solution.
confirmation_period_valid?
confirmation_period_valid?
method is defined at the module Devise::Models::Confirmable
of devise gem.