Невозможно создать два поведения на заказ для разработки, одно для пользователя другого для admin_user
-
26-10-2019 - |
Вопрос
Я использую 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
Может ли кто -нибудь сказать мне, как изменить код, чтобы перенаправить пути для пользователя Signin не удалось, а Admin_user Signin не удалось. Мой путь подписи пользователя администратора: admin_user_session_path
Решение
Вы должны использовать область, чтобы решить это:-
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
надеюсь это поможет :)
Другие советы
Application_controller.rb
...
def after_sign_in_path_for(resource_or_scope)
if admin_user
redirect_to whatever_path
else
root_path
end
end
...
Я могу не знать правильный звонок для пользователя администратора, но это должно работать.