Daten, die nicht in die SQLite-Datenbank gelangen - Ruby on Rails

7

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?

    
Test Test 12.03.2012, 00:04
quelle

8 Antworten

8

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)

    
Arthur Camara 11.07.2012 17:41
quelle
8
  1. user = User.new

  2. Setzen Sie die Felder auf user

  3. user.save

  4. siehe user.errors

ocodo 20.02.2013 20:50
quelle
2

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%     
SteveLin 27.09.2013 15:03
quelle
1

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.

    
Ben Lee 12.03.2012 00:07
quelle
1

Vielleicht suchen Sie nach der falschen Datenbank. Dies ist Schienen App. und schauen Sie sich das balbla.development Schema in der Datenbank an, da es bei Ihrem Problem keine Möglichkeit gibt, dass es eine Zeile mit dem gleichen E-Mail-Wert geben muss

    
erogol 12.03.2012 00:20
quelle
1

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

    
Ryan W Kan 20.03.2012 02:31
quelle
1

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.

    
regrecall 28.05.2012 03:36
quelle
1

Es ist das Passwort.

Wenn Sie die Fehler überprüfen möchten, tun Sie dies:

%Vor%     
user2008535 24.01.2013 18:05
quelle

Tags und Links