Rails and Devise gem: Как мне изменить, куда перенаправляется мое веб-приложение после неудачного входа в систему? - PullRequest
1 голос
/ 03 ноября 2011

как мне изменить, куда перенаправляется мое веб-приложение после неудачного входа в систему?Я копался в вики Devise в поисках этого, и все, что я могу найти, - это код для изменения места, куда приложение перенаправляется после успешного входа, выхода и регистрации.Но когда я тестирую свое приложение и набираю неверный пароль, я перехожу на страницу с ошибкой, на которой читается ...

No route matches {:controller=>"devise/projects"}

Этот маршрут, конечно, не существует, и я понятия не имею, почемупытаясь перенаправить туда, и я хотел бы изменить, куда перенаправляет Devise после неудачного входа в систему.

Заранее спасибо за вашу помощь!

1 Ответ

0 голосов
/ 03 ноября 2011

Давайте посмотрим на разработку контроллера 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")

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...