Rails - before_save funktioniert nicht?

8

Ich folge Michael Hartls RoR-Tutorial und es behandelt die Grundlagen der Passwortverschlüsselung. Dies ist das Benutzermodell, wie es derzeit aussieht:

%Vor%

(Offensichtlich führt dies keine Verschlüsselung durch, weil die Verschlüsselungsmethode nicht wirklich implementiert ist, aber das ist nicht meine Frage)

Ich schrieb dann die folgende Spezifikation (gemäß dem Tutorial):

%Vor%

Der erste dieser Tests besteht, aber da @user.encrypted_password gleich Null ist, schlägt der zweite Test fehl. Aber ich verstehe nicht, warum es null ist, da die Methode encrypt_password von before_save aufgerufen werden sollte. Ich weiß, dass ich etwas vermissen muss - kann jemand bitte erklären?

    
Kvass 13.06.2011, 01:20
quelle

2 Antworten

20

Die Methode "encrypt_password" ist falsch und sollte Folgendes enthalten:

%Vor%

Beachten Sie die Verwendung von self, die das Attribut für das Benutzerobjekt richtig setzt, anstatt eine Instanzvariable zu erstellen, die vergessen wird.

    
nmunson 13.06.2011, 03:15
quelle
0

Das ist eine alte Frage und das ist eher ein Kommentar, aber ich habe noch nicht genug Reputation um es zu kommentieren. Ich wollte nur diese Frage auch verlinken, da es in einige solide Details über self geht.

Warum wird nicht immer in Ruby / Rails benötigt / activerecord?

    
Andrew Haust 29.08.2013 22:44
quelle

Tags und Links