Давайте посмотрим на разработку контроллера Session:
class Devise::SessionsController < ApplicationController
# GET /resource/sign_in
def new
resource = build_resource
clean_up_passwords(resource)
respond_with_navigational(resource, stub_options(resource)){ render_with_scope :new }
end
# POST /resource/sign_in
def create
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
respond_with resource, :location => after_sign_in_path_for(resource)
end
end
Аутентификация происходит там с надзирателем:
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
В сообщении говорится, что при сбое аутентификации выполняется действие рендеринга: новое из контроллера сессий, которое отображало форму входа. Убедитесь, что вы не переопределяете это в своем унаследованном контроллере. Или, может быть, попытаться переопределить это.