如何从Hobo/Rails中的控制台重置用户密码
Raobo框架Hobo非常出色,并以管理员用户的身份自动创建第一个用户(除非您不要求)。我遇到的问题是开发中的rails问题,我不记得密码是什么。这应该是微不足道的,因为我只是运行rails console
,找到用户admin = User.find :first
和重置密码(试图)如何从Hobo/Rails中的控制台重置用户密码
admin.password = 'Anything1234'
admin.password_confirmation = admin.password
admin.save
>false
admin.errors
>{:current_password=>["is not correct"]}
即其含义是在我可以更改现有密码之前,需要正确设置变量current_password。
恐怕Hobo文档在这种情况下不起作用。有谁知道如何驱动Hobo用户模型重置密码?
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")
是的,在设置password
和password_confirmation
字段之前,您需要设置current_password
。这是为了阻止用户在不知道密码的情况下更改密码。
因此,你需要做这样的事情:
admin.current_password = 'password'
admin.password = 'Anything1234'
admin.password_confirmation = admin.password
admin.save
瑞安,我认为,是我的观点 - 如果你不知道当前的密码,你不能保存一个新的密码。问题是什么呢? – meesern 2012-04-19 09:18:53
谢谢,我尝试了1 - 但链接因为其他原因不起作用。没有验证的保存是我错过的显而易见的一个! 3是我没有更好的东西而去的,4对于它是如何工作的有一个正确的看法是很棒的。 – meesern 2012-04-19 09:26:19
坦率地说#3是我对这类问题最常见的选择。我的大部分项目都有一个脚本来建立一个初始数据库,所以我删除并重建数据库。 – 2012-04-19 14:39:26