您好,我正在尝试为我的 rails 应用程序创建重置密码;但是当我尝试保存时,出现以下错误:
验证失败:密码不能为空、密码太短(最少为 6 个字符)、密码确认不能为空
这是我的用户模型。
class User < ActiveRecord::Base
attr_accessible :email, :password, :password_confirmation
has_secure_password
before_save { |user| user.email = email.downcase }
before_save :create_remember_token
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false }
validates :password, presence: true, length: { minimum: 6 }
validates :password_confirmation, presence: true
def send_password_reset
self.password_reset_token = SecureRandom.urlsafe_base64
self.password_reset_at = Time.zone.now
self.password = self.password
self.password_confirmation = self.password
save!
end
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
end
方法“send_password_reset”不会更新用户,我不明白为什么要尝试保存用户而不是仅更新 password_reset_token 和 password_reset_at。
有人可以帮助我吗?