Ich starte "rails console" und dann den folgenden Befehl:
%Vor%und ich bekomme das:
%Vor%Wenn ich die Datei der SQLite-Datenbank mit dem SQLite-Datenbank-Browser überprüfe, sehe ich nichts.
Hier ist mein Benutzermodell:
%Vor%Warum werden Daten nicht in meine Datenbank eingegeben?
Ich bekomme diesen Fehler mit allem, was ich eingeben!
Dies zum Beispiel:
%Vor%Ich habe nie einen Smith-Benutzer mit dieser E-Mail angegeben, und ich erhalte immer noch den "Benutzer existiert"!
BEARBEITEN:
Ich habe den Fehler erhalten. Das Passwort ist 5. Ich habe ein 3-stelliges Passwort eingegeben also wenn ich das hier tippe:
%Vor%Ich arbeite, aber ich bekomme immer noch diesen seltsamen Benutzer existiert Fehler ... Irgendwelche Ideen?
Ich bin gerade mit einer Google-Suche hierher gekommen und habe herausgefunden, wo das Problem liegt. In der Tat ist es eine Quatsch-Fehlermeldung. Selbst mit einer sauberen Datenbank würde es erscheinen. Das Problem ist: Das Passwort ist nur 3 Zeichen lang, was zu einem Problem mit
führen kann %Vor%Wenn Sie also mit einem längeren Passwort (und einer Bestätigung) versuchen, sollte es funktionieren. (PS: Ich benutze MySQL Server, nicht SQLite, aber ich bin mir ziemlich sicher, der Fehler ist der gleiche)
Tatsächlich ist das Problem nicht "Benutzer existiert", und der wahre Grund ist, dass das Passwort zu kurz ist. Sie können die Fehler anzeigen, indem Sie user.errors auf der Rails-Konsole eingeben.
Siehe das folgende Fehlerbeispiel.
%Vor%Wenn ich das Passwort von "admin" auf "admin123" geändert habe und nichts falsch ist.
%Vor%Sie versuchen, eine doppelte Zeile in der Datenbank zu erstellen, in der eine eindeutige Validierung vorhanden ist. Siehe Ihre Fehlermeldung ("Benutzer existiert"):
%Vor%Siehe die Zeile in Ihrem Modell:
%Vor%Es wird bestätigt, dass die E-Mail-Adresse des Benutzers eindeutig ist. Sie müssen also bereits eine Zeile in der Datenbank mit "[email protected]" als E-Mail-Adresse haben.
Ich bin mir nicht 100% sicher, aber ich denke
User Exists (0.4ms) SELECT 1 VON "users" WHERE LOWER ("Benutzer". "email") = LOWER ('[email protected] ') LIMIT 1
überprüft lediglich die Eindeutigkeit, da es unabhängig davon ausgeführt wird, ob Ihre Abfrage erfolgreich ist oder nicht.
Wenn Sie genauer auf die Ergebnisse achten, werden Sie feststellen, dass bei einem erfolgreichen Ergebnis "Benutzer vorhanden" blau angezeigt wird, während ein fehlgeschlagenes Ergebnis beim Versuch, einen doppelten Benutzer einzufügen, "Benutzer vorhanden" rot anzeigt (oder in meinem Fall lila).
Ryan
Ich habe dieses Problem auch gefunden, weil mein Passwort nicht länger ist als die 6. Also habe ich es auf die längere geändert, es hat funktioniert. Aber ich wusste nicht, warum diese Ausnahme "User Existed" oder "
" genannt wurde
Etwas ist falsch mit mir.
BYW, ich habe den SQLIte Datenbank Browser nicht geöffnet.
Es ist das Passwort.
Wenn Sie die Fehler überprüfen möchten, tun Sie dies:
%Vor%Tags und Links ruby-on-rails