Datamapper没有保存我的用户模型。(这是一个Sinatra网络应用程序,数据库是AWS RDS 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上自己测试)
(我能在堆栈溢出时这样做吗?如果不能,请编辑掉)
编辑:更新了验证规则。现在我收到一个错误"通行证长度必须在6到50个字符之间"(使用28(或30?)个字符的密码)
max pleaner为我回答了这个问题。
对于寻找答案的谷歌用户:
检查您的验证,并确保加密不会使密码超过您的最大值。