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用户模型重置密码?
答案 0 :(得分:1)
是的,您需要在设置current_password
和password
字段之前设置password_confirmation
。这是为了阻止用户在不知道密码的情况下更改密码。
因此,您需要执行以下操作:
admin.current_password = 'password'
admin.password = 'Anything1234'
admin.password_confirmation = admin.password
admin.save
答案 1 :(得分: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")