Datamapper不保存/更新条目

时间:2013-04-30 20:49:03

标签: ruby database sinatra datamapper

我正在开发一个快速的小型sinatra应用程序,我已经设法很容易地征服身份验证。但是我不能为我的生活获得密码更改工作。我正在使用Datamapper下面的代码,虽然它到达了重定向,但密码不会改变。

user = User.first(:token => session[:user])
if params[:newpassword] == params[:newpasswordconfirm]
    if BCrypt::Engine.hash_secret(params[:oldpassword], user.salt) == user.password_hash
        user.password_hash = BCrypt::Engine.hash_secret(params[:newpassword], user.salt)
        user.save
        redirect '/'

我也试过

user = User.first(:token => session[:user])
if params[:newpassword] == params[:newpasswordconfirm]
    if BCrypt::Engine.hash_secret(params[:oldpassword], user.salt) == user.password_hash
        user.update(:password_hash = BCrypt::Engine.hash_secret(params[:newpassword], user.salt)
        redirect '/'

然而,这也无法更新该值。不确定我做错了什么。

class User 
include DataMapper::Resource

attr_accessor :password, :password_confirmation

property :id, Serial
property :username, String, :required => true, :unique => true
property :password_hash, Text  
property :salt, Text
property :token, String

validates_presence_of           :password
validates_confirmation_of       :password
validates_length_of             :password, :min => 6
end

0 个答案:

没有答案