Es gibt mehrere Möglichkeiten, wie Sie dies tun können.
Mit der neuen Version von Devise (ich benutze 2.1.2) kann das Hinzufügen von before_filter :authenticate_user!
zu Ihrem Controller wird dieses Verhalten automatisch für Sie eingerichtet.
Wenn Sie dies immer noch manuell einrichten möchten, können Sie den Pfad einfach in der Datei session
. Devise erwartet, es zu finden in session["#{resource}_return_to"]
wobei "Ressource" der Name Ihres Benutzermodells ist. Normalerweise ist das also session["user_return_to"]
. Sie hatten einen Punkt '.' in Ihrer Version, der Ihre Fehler verursacht haben könnte. Außerdem ist die session
akzeptiert Zeichenkettenwerte als Schlüssel, so dass keine Notwendigkeit besteht, sie zu symbolisieren.
Eine andere Möglichkeit ist das Überschreiben der after_sign_in_path_for(resource)
Methode, wie Sie es getan haben. Weitere Einzelheiten dazu finden Sie in der Devise-Wiki So geht's: Nach der Anmeldung zurück zur aktuellen Seite leiten .
Da dies eine Umleitung auslöst, sollten Sie die Verwendung vollständiger URLs in Betracht ziehen.
def after_sign_in_path_for(resource)
session["#{resource}_return_to"] || root_url
end