Почему Devise не позволяет неподтвержденным пользователям войти в систему, даже если установлен параметр allow_unconfirmed_access_for?

У нас уже есть база пользователей, и мы добавляем подтверждение по электронной почте. Подтверждение не является обязательным, но позволит дополнительные функции. Пользователи не обязаны подтверждать. Я добавил подтверждающий модуль и провел миграцию. Подтверждение работает как рекламируется.

Но пользователи не могут войти, так как они не подтверждены. Все текущие пользователи имеют нулевые значения подтверждения, чего мы и хотим (пользователи могут вернуться и подтвердить свою электронную почту в любое время). Я следил за всеми статьями Devise wiki и установил allow_unconfirmed_access_for в инициализаторе:

config.allow_unconfirmed_access_for = 10.years 

Я также попытался установить его в нашей пользовательской модели:

devise :confirmable, allow_unconfirmed_access_for: 10.years

Я также пытался использовать другие значения (1. год, 500 дней и т. Д.)

Мой SessionsController, который мало чем отличается от метода Devise (здесь на GitHub)

class Users::SessionsController < Devise::SessionsController
  respond_to :json

  def new
    redirect_to "/#login"
  end

  def create
    resource = warden.authenticate(auth_options)
    if !resource
      render json: {error: "Invalid email or password" }, status: 401 and return
    end

    sign_in(resource_name, resource)
    render "sign_in", formats: [:json], locals: { object: resource }
  end
end

Ответ разработчика:

{"error": "Вы должны подтвердить свою учетную запись, прежде чем продолжить."}

Разработать 2.1.2 с Rails 3.2.9.

Ответы на вопрос(3)

Ваш ответ на вопрос