试图在空的地方分配密码但覆盖用户密码。我的修复得到无效的哈希错误

trying to assign passwords where empty but overriding users passwords. My fix gets invalid Hash error

我敢肯定这可能是显而易见的事情,但我对 Bcrypt 还很陌生,我正在尝试构建一个应用程序,我正在上传许多用户,他们的电子邮件我有但没有密码 - 我想分配随机密码给用户,以便他们可以单击 'forgot password' 来设置新密码。但是我设置随机密码的方法是在保存时覆盖新密码。我在这里找到的修复程序给我一个 'Invalid Hash' 错误。非常感谢任何帮助。 代码如下:

用户模型:

class User < ActiveRecord::Base
attr_accessor :remember_token, :activation_token, :reset_token, :user_params
before_save   :downcase_email, :downcase_role
after_save :set_password_if_nil  
before_create :create_activation_digest

当您上传用户时意味着您正在创建一些新记录,因此您可以使用 after_save createupdate 上的 运行s after_create。所以这 运行 只会在创建新记录时出现。希望这有帮助。