1

Rails 框架 Hobo 非常出色,它会自动将第一个用户创建为管理员用户(除非您要求它不要这样做)。我遇到的问题是在开发中运行 rails 我不记得密码是什么。这应该是微不足道rails console的,因为我只是运行,找到用户admin = User.find :first并重置密码(尝试)

 admin.password = 'Anything1234'
 admin.password_confirmation = admin.password
 admin.save
 >false
 admin.errors
 >{:current_password=>["is not correct"]}

也就是说,在我可以更改现有密码之前,需要正确设置变量 current_password。

恐怕 Hobo 文档在这种情况下没有帮助。有谁知道如何驱动 Hobo 用户模型重置密码?

4

2 回答 2

1

4种可能的解决方案:

1:运行您的应用程序,然后单击忘记密码链接。该消息将出现在您的日志中,因此您不需要设置邮件程序。

2:只需保存而不进行任何验证:

admin.save(false)

编辑:在 Rails 3 中,这是

admin.save(:validate => false)

3:另一种选择是删除所有用户,以便您返回初始用户输入屏幕。

4:如果你真的想运行验证,你可以触发 request_password_reset 生命周期:

admin.lifecycle.request_password_reset!(Guest.new)

然后在开发日志中查找重置密码密钥

u.lifecycle.reset_password!(Guest.new, :key => 'a0a2db1035065fa7ad5d46d35669d206aee73668', :password=>"test123", :password_confirmation=>"test123")
于 2012-04-17T18:57:19.090 回答
1

是的,您需要在设置和字段current_password之前设置。这是为了阻止用户在不知道密码的情况下更改密码。passwordpassword_confirmation

因此,您需要执行以下操作:

admin.current_password = 'password'
admin.password = 'Anything1234'
admin.password_confirmation = admin.password
admin.save
于 2012-04-17T14:45:21.030 回答