2016-08-02 22 views
0

Datamapper speichert meine Benutzermodelle nicht. (Dies ist eine Sinatra Webapp und der db ist ein AWS RDS mysql db.)Datamapper speichert Datensätze nicht in MySQL

Das Modell Benutzer:

class User 
    include DataMapper::Resource 
    property :uid, Serial 
    property :user, String, :key => true, :length => 3..20 
    property :pass, String, :required => true, :length => 6..50 
end 

Der Code es setzen:

post "/register" do 
    username = params["username"] 
    password = params["password"] 
    begin 
    encrypted_password = BCrypt::Password.create password 
    meme = User.new :user => username, :pass => encrypted_password 
    meme.save 
    raise DatabaseError, "User record not saved" unless meme.saved? 
    flash[:register] = "Welcome, new user! Please log in now." 
    redirect "/login" 
    # disabled rescue stuff... 
    end 
end 

(wenn Sie möchten, testen Sie es, sich bei dittoslash.uk)
(kann ich dies tun auf Stack-Überlauf? diese bearbeiten, wenn Sie nicht können)

EDIT: Aktualisierte Validierungsregeln. Jetzt bekomme ich einen Fehler von 'Pass muss zwischen 6 und 50 Zeichen lang sein' (mit einem 28 (oder 30?) Zeichen Passwort)

+0

Sie haben einen Datenbankfehler eingerichtet, um zu erhöhen, wenn das Mem nicht gespeichert wird. Überprüfen Sie die Überprüfungsfehler im Datensatz. Und bitte posten Sie einen originalen Fehler als Text in Ihrer Frage. –

+0

Ich kann keinen ursprünglichen Fehler posten, da dies normalerweise keinen Fehler verursacht. – Dittoslash

+0

"Pass muss höchstens 50 Zeichen lang sein" .e. – Dittoslash

Antwort

0

max appener hat dies für mich beantwortet.

Für Googler, die nach Antworten suchen:
überprüfen Sie Ihre Validierungen und stellen Sie sicher, dass die Verschlüsselung das Passwort nicht länger als Ihr Maximum macht.