2016-07-15 9 views
0

Ich versuche, diese Funktionalität mit Devise zu implementieren, aber ich kann es nicht tun, außer auf die Homepage umleiten.Umleiten zur vorherigen Seite nach dem Login mit Devise

Ich muss etwas in meine after_sign_in_path_for Methode einfügen.

Ich habe versucht:

def after_sign_in_path_for(resource) 
    request.env['omniauth.origin'] || stored_location_for(resource) || root_url 
    super 
end 

Ich habe bei this question sah und so ziemlich alle anderen Posten dieses SO in Bezug auf ohne Erfolg. Offenbar Entwickeln speichert die bisherigen Standorte standardmäßig, aber ich habe es selbst versucht zu tun:

after_filter :store_location 

def store_location 
    # store last url as long as it isn't a /users path 
    session[:previous_url] = request.fullpath unless request.fullpath =~ /\/users/ 
end 

def after_sign_in_path_for(resource) 
    session[:previous_url] || root_path 
end 

ich Dutzende von verschiedenen Kombinationen der oben genannten und Antworten in anderen Fragen getan haben. Warum funktionieren diese nicht? Ich bekomme nicht einmal Fehler oder irgendetwas, im Grunde ignoriert es einfach meinen Code und leitet auf die Homepage um, egal was ich mache.

+0

Haben Sie überprüft die [Entwickeln wiki] (https://github.com/plataformatec/devise/wiki/How-To: -Redirect-zurück zur aktuellen Seite nach der Anmeldung, -Auszeichnung, -Auszeichnung, -Aktualisierung)? –

+0

@NicNilov Ja, ich habe ziemlich jedes Stück Code in dort versucht. – 123

Antwort

0

Sie versuchen request.referer verwenden könnte mit diesem

redirect_to request.referer 

diese question auch mehr Einblick bieten könnte

Verwandte Themen