2016-04-18 7 views
0

Ich habe eine Rails App mit Gerät gem. Ich möchte einige URLs mit Params (in URL) in E-Mail übergeben. Wenn der Benutzer darauf klickt und wenn der Benutzer eingeloggt ist, funktioniert alles (ULR ist wie myhost.com/myaction?my_var=xx) , aber wenn der Benutzer nicht eingeloggt ist, wird er weitergeleitet, um sich einzuloggen. Nach dem Angeben der Anmeldedaten verlor es my_var-Wert und App-Pausen. (ja es geht zu meiner Aktion)Schienen Gerät nicht halten GET Parameter

für jetzt bin ich Benutzer auf sein Dashboard mit Fehler msg umleiten, aber jemand hat eine gute Lösung?

+0

Sie können Ihre params Benutzersitzung und nach der Anmeldung verwenden Sie validieren und speichern können sie für Dinge, die du brauchst. –

Antwort

1

Sie können das Standard-Devise Verhalten nach einer erfolgreichen Authentifizierung zu überschreiben, indem Sie die after_sign_in_path_for Methode in der Application definieren:

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

In diesem Beispiel Devise wird prüfen, ob die Sitzung [: stored_path] eingestellt ist, wenn es wird nicht versuchen, den stored_location_for (resource) -Pfad zu laden, und als fehlgeschlagener save wird es schließlich in den root_path umleiten.

In diesem Fall werden Sie die Sitzung festlegen müssen [: stored_path]. Auf Umleitung, wenn die current_user nicht angemeldet ist