首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Hobo/Rails中从控制台重置用户密码

如何在Hobo/Rails中从控制台重置用户密码
EN

Stack Overflow用户
提问于 2012-04-17 22:41:52
回答 2查看 1.7K关注 0票数 1

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

代码语言:javascript
复制
 admin.password = 'Anything1234'
 admin.password_confirmation = admin.password
 admin.save
 >false
 admin.errors
 >{:current_password=>["is not correct"]}

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-18 02:57:19

4种可能的解决方案:

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

2:只保存,不做任何验证:

代码语言:javascript
复制
admin.save(false)

编辑:在Rails 3中,这是

代码语言:javascript
复制
admin.save(:validate => false)

3:另一种选择是删除所有用户,这样您就可以恢复初始用户输入屏幕。

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

代码语言:javascript
复制
admin.lifecycle.request_password_reset!(Guest.new)

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

代码语言:javascript
复制
u.lifecycle.reset_password!(Guest.new, :key => 'a0a2db1035065fa7ad5d46d35669d206aee73668', :password=>"test123", :password_confirmation=>"test123")
票数 1
EN

Stack Overflow用户

发布于 2012-04-17 22:45:21

可以,您需要先设置current_password,然后再设置passwordpassword_confirmation字段。这是为了阻止用户在最初不知道密码的情况下更改密码。

因此,您需要这样做:

代码语言:javascript
复制
admin.current_password = 'password'
admin.password = 'Anything1234'
admin.password_confirmation = admin.password
admin.save
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10193415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档