Erro 302 lançado do Rails Devise para usuário não confirmado

Integrei o projeto para login de treinadores no site do ROR. Está funcionando bem, mas quando tentei fazer o login através de um usuário que ainda não foi confirmado, ocorreu um erro 302. Aqui estão os detalhes do código que eu usei:

1) Database Schema:

  create_table "coaches", :force => true do |t|
    t.string   "first_name",             :limit => 20
    t.string   "last_name",              :limit => 20
    t.integer  "status",                 :limit => 2,   :default => 0
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "email",                  :default => "", :null => false
    t.string   "encrypted_password",     :default => "", :null => false
    t.string   "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",           :default => 0,  :null => false
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.string   "current_sign_in_ip"
    t.string   "last_sign_in_ip"
    t.string   "confirmation_token"
    t.datetime "confirmed_at"
    t.datetime "confirmation_sent_at"
    t.string   "unconfirmed_email" 
  end

2) Arquivo do Controlador de Sessão:

class Coaches::SessionsController < Devise::SessionsController
  layout :apply_devise_layout

  def create
    coach = Coach.where(:email => params[:coach][:email])[0]
    if coach.present? && !coach.confirmed?
        return render :json => {:success => false, :errors => t('devise.failure.unconfirmed')}  
    end
    resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#failure")
    sign_in_and_redirect(resource_name, resource)
  end

  def sign_in_and_redirect(resource_or_scope, resource=nil)
    scope = Devise::Mapping.find_scope!(resource_or_scope)
    resource ||= resource_or_scope
    sign_in(scope, resource) unless warden.user(scope) == resource
    sign_out :admin
    sign_out :member
    return render :json => {:success => true,:msg=>t('devise.sessions.signed_in'),:sent_to=>resource.site_url || ''}
  end

  def failure
    return render :json => {:success => false, :errors => flash[:alert]}
  end
end

questionAnswers(1)

yourAnswerToTheQuestion