我的模型:
class User < Sequel::Model
self.raise_on_save_failure = false
plugin :validation_helpers
def validate
super
validates_format /@/, :email
validates_presence [:email, :password]
validates_unique :email
end
def before_save
super
self[:password] = BCrypt::Password.create(self[:password])
end
结尾
但是当我更新用户时,我的密码哈希两次。我知道这是因为before_save
钩子,但我想继续sequel
验证 (validates_presence) 真实密码,而不是 bcrypt 哈希的结果(原因BCrypt::Password.create('')
不为空)
所以我需要以某种方式下一步:
- 检查密码是否更改
- 验证真实密码
sequel
- 保存我的密码的 bcrypt 哈希