Ich verwende den folgenden Code für meine Routen:
devise_for :user,
:as => '',
:path_names => {
:sign_in => "",
:sign_out => "logout",
:sign_up => "register"
}
Aber wenn ich abgemeldet bin und gehe, /logout
erhalte ich den folgenden Fehler:
Keine Route entspricht {: action => "new" ,: controller => "devise / session"}
Wie richte ich den Root-Pfad für die :sign_in
Aktion ein?
ruby-on-rails
ruby-on-rails-3
devise
Logan Bailey
quelle
quelle
Einfach so, getestet auf Rails Rails 4.1.0.rc1.
quelle
Ich musste das Standard-Home-Root festlegen. Ich hatte das Gefühl, ich hätte es letzte Nacht die ganze Nacht versucht (bevor ich die Frage gestellt habe), aber es funktioniert jetzt. Wenn Sie abgemeldet sind, versucht Devise, Sie zu dem von mir nicht definierten Stammpfad umzuleiten.
quelle
(Dies wurde als Änderungsvorschlag veröffentlicht, hätte aber eine eigene Antwort sein sollen. Ich weiß nicht, ob es sinnvoll ist oder nicht. Sehr geehrter anonymer Redakteur, zögern Sie nicht, diese Antwort als Ihre eigene zu veröffentlichen und mir einen Kommentar zu hinterlassen also werde ich diese Kopie löschen.)
quelle
Ich habe dies mit @VvDPzZ Antwort zu arbeiten. Aber ich musste es leicht modifizieren
Ich musste
to:
in der Root-Pfad-Deklaration angeben. Ich habe das auch entfernt,as: :authenticated_root
weil ich bereits einige Stellen in meiner Anwendung hatte, dieroot_path
auf Links verweisen . Durch das Weglassen desas: :authenticated_root
Teils musste ich keinen meiner vorhandenen Links ändern.quelle
Ich denke, Sie haben verschiedene Benutzerrollen. Wenn Sie dies tun, müssen Sie der Benutzerressource einen solchen Bereich hinzufügen:
Weitere Informationen zum Überschreiben von Routen finden Sie hier: https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes
quelle
Einige dieser Lösungen sind viel zu komplex. Verwenden Sie einfach Rails:
In
'get' 'users/root', to: 'users#root'
zu config / routes.rb.Führen Sie in UsersController Folgendes aus:
quelle
Mit Rails 3.2 und Device 3.2.3 kann ich meine Homepage " Home # Index " (Controller # Aktion) als Anmeldeseite einrichten und die folgenden Änderungen vornehmen.
# 1 Das Anmeldeformular wurde zur Startseite hinzugefügt:
# 2 Methoden Ressourcenname, Ressource und Gerätezuordnung zu app / holdpers / application_helper.rb hinzugefügt :
# 3 Erstellt eine benutzerdefinierte Sitzungscontroller- App / controller / users / session_controller.rb :
# 4 Überspringen Sie die Sitzungsrouten und richten Sie den benutzerdefinierten Sitzungscontroller in config / route.rb ein :
quelle