2010-12-16 5 views

Antwort

9

Wenn ein Benutzer klickt auf den Link bestätigen sie auf eine Bestätigungsseite weitergeleitet werden, die die Bestätigungstoken überprüft und wenn es protokolliert gültig ist sie automatisch in die Anwendung. Sie könnten die after_sign_in_path_for Methode in der Application (as shown on the Devise wiki) überschreiben und dann ein Benutzer anmeldet in der ersten Zeit, um Ihre erste schritte Seite umleiten.

def after_sign_in_path_for(resource_or_scope) 
    if resource_or_scope.is_a?(User) && first login 
    getting_started_path 
    else 
    super 
    end 
end 

Für „Erstanmeldung“ Sie können testen, ob die confirmed_at Zeitstempel innerhalb ist ein paar Minuten von jetzt, wenn Sie auch das verfolgbare Modul in Gerät verwenden, können Sie überprüfen, ob das Zeichen_in_Count 1 ist oder Sie könnten Ihr eigenes Feld in dem Benutzermodell erstellen, das diese Informationen verfolgt.

+0

thx, aber ich bin nicht auf der Suche, um den Benutzer hier jedes Mal umleiten, nur kurz nachdem sie zuerst ihre E-Mail-Adresse bestätigen – AnApprentice

+0

Mein Gedanke war, dass Sie eine Überprüfung haben, um zu sehen, ob es die erste Anmeldung war, die die Confirmed_at Zeitstempel, sign_in_count überprüfen konnte oder ein anderes benutzerdefiniertes Feld. Diese Überprüfung würde in meinem Codebeispiel an die Stelle von "&& first login" treten. Dann würden sie nur für die erste Anmeldung umgeleitet werden und danach würden sie auf Ihre Standard-Login-Seite gehen. –

0

innerhalb der 'after_sign_in_path_for' die current_user.last_sign_in_at.nil? wird nicht funktionieren, da es nach der ersten Anmeldung alerady ist. Aber das wird funktionieren

if current_user.sign_in_count == 1 
# do 1 thing 
else 
# do another thing 
end 
Verwandte Themen