更新时Rails has_secure_password

时间:2014-03-23 12:27:19

标签: ruby-on-rails ruby-on-rails-4

我在Rails中编写自己的用户身份验证系统,我正在尝试简化注册过程。我只希望新用户在注册时提供电子邮件,然后通过电子邮件将密码发送给他们,但使用has_secure_password我被告知密码不能为空

我想在注册时创建一个随机密码,通过电子邮件发送给他们,以便将来可以访问他们的帐户,但我怎样才能注入"验证前的密码。

我想这样做的地方是用户模型中的before_create,但是对此的任何建议/代码示例都会非常感激。

目前我有这个但仍然无法获得密码消息。

#user.rb
has_secure_password

before_create :set_temporary_password

def set_temporary_password
  self.password = SecureRandom.hex(5)
  self.password_confirmation = self.password
  #email the password or better still, a link to create a password
end

1 个答案:

答案 0 :(得分:0)

添加到before_validation应该可行,请在此处查看回调生命周期:

http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html