Rails: вызов Devise authenticate_user!и обработка недопустимого исключения пользователя / пароля - PullRequest
5 голосов
/ 21 сентября 2011

У меня есть всплывающее окно, которое позволяет просматривать / сохранять некоторую информацию только при аутентификации пользователя.

Я использую устройство.

В контроллере before_filter он проверяет, вошел ли пользователь в систему и, если нет, показывает страницу входа.

Эта страница входа представляет собой сокращенную версию страницы входа на сайт, так что она хорошо вписывается во всплывающее окно.

В действии аутентификации я вызываю authenticate_user !. Все работает нормально, когда пользователь вводит действительные учетные данные. Но когда учетные данные недействительны, devise автоматически перенаправляет на страницу входа на сайт (которая, как я уже говорил, отличается и не подходит для всплывающего окна)

Я пытался добавить спасение к вызову, но безрезультатно.

Кто-нибудь может предложить лучший / правильный способ сделать это, пожалуйста? :)

def authenticate

    authenticate_user! rescue redirect_to "/popup/sign_in"

    if user_signed_in?
      respond_to do |format|
        format.html {
          flash[:notice] = I18n.t("logged_in_succesfully")
          redirect_back_or_default(accounts_path)
        }

    else
      flash[:error] = I18n.t("devise.failure.invalid")
      render "/popup/sign_in"
    end
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...