Ich kann nicht zwei benutzerdefinierte Verhaltensweisen für Devise erstellen, eines für den Benutzer für admin_user
-
26-10-2019 - |
Frage
Ich verwende Active_admin in meiner Rails -App. Zuvor habe ich eine benutzerdefinierte Seite auf dem Devise -Anmeldung fehlgeschlagen. Das Problem ist nun, dass dieselbe benutzerdefinierte Seite gerendert wird, wenn Active_admin Login ebenfalls fehlschlägt.
Ich bin an diesem Problem und zu weit in meiner Entwicklung festgefahren, um Active_admin aufzugeben. Bitte helfen Sie.
Meine CustomFailure -Definition ist hier:
class CustomFailure < Devise::FailureApp
def redirect_url
signin_path
end
def respond
if http_auth?
http_auth
else
redirect
end
end
end
Könnte mir jemand sagen, wie ich den Code so ändern kann, dass es fehlgeschlagen ist, um Pfade für Benutzer zu vermitteln, und die Admin -_user -Signin fehlgeschlagen. Mein Administrator -Benutzer -Signin -Pfad lautet: admin_user_session_path
Lösung
Sie müssen den Bereich verwenden, um dies zu lösen:-
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
hoffe das hilft :)
Andere Tipps
application_controller.rb
...
def after_sign_in_path_for(resource_or_scope)
if admin_user
redirect_to whatever_path
else
root_path
end
end
...
Ich kenne vielleicht nicht den richtigen Anruf für den Administratorbenutzer, aber dies sollte funktionieren.