не может создать два поведения перенаправления CustomFailure для devise, одно для пользователя, другое для admin_user - PullRequest
2 голосов
/ 16 февраля 2012

Я использую active_admin в моем приложении rails. Ранее я использовал для отображения пользовательской страницы при неудачном входе в систему. Проблема теперь в том, что та же самая пользовательская страница отображается после сбоя входа в систему active_admin.

Я застрял с этой проблемой и слишком далеко зашёл в своем развитии, чтобы отказаться от active_admin. Пожалуйста, помогите.

Мое определение CustomFailure находится здесь:

class CustomFailure < Devise::FailureApp
  def redirect_url 
    signin_path
  end

  def respond
    if http_auth? 
      http_auth
    else
      redirect
    end
  end
end

Может ли кто-нибудь сказать мне, как изменить код, чтобы пути перенаправления для входа пользователя не удавались, а admin_user вход не удался. Мой логин для входа администратора: admin_user_session_path

Ответы [ 2 ]

5 голосов
/ 17 февраля 2012

Вы должны использовать область действия, чтобы решить это: -

class CustomFailure < Devise::FailureApp 
  def redirect_url 
    if warden_options[:scope] == :user 
      signin_path 
    else 
      new_admin_user_session_path 
    end 
  end 
  def respond 
    if http_auth? 
      http_auth 
    else 
      redirect 
    end 
  end 
end 

надеюсь, это поможет:)

0 голосов
/ 17 февраля 2012

application_controller.rb

...
def after_sign_in_path_for(resource_or_scope)
  if admin_user
   redirect_to whatever_path
  else
   root_path
  end
end
...

Возможно, я не знаю правильный вызов для администратора, но это должно сработать.

...