2016-08-02 79 views
0

Datamapper未保存我的用户模型。 (这是一个西纳特拉Web应用程序和数据库是AWS RDS的MySQL数据库。)Datamapper未将记录保存到MySQL

用户模型:

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 

的代码来设置它:

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 

(如果你想,自己在dittoslash.uk测试)
(我能做到这一点的堆栈溢出?如果你不能编辑了这一点)

编辑:更新验证规则。现在我收到'Pass必须介于6到50个字符之间'的错误(带有28(或30?)个字符的密码)

+0

如果meme没有保存,您已经设置了数据库错误。检查记录上的验证错误。并且请在您的问题中发布原文错误。 –

+0

我无法发布原始错误,因为这通常会引发错误。 – Dittoslash

+0

'通过长度不得超过50个字符' .e。 – Dittoslash

回答

0

max pleaner回答了我的问题。

对于寻找答案的Google员工:
检查您的验证,并确保加密不会使密码超过最大值。