104

在运行应用程序时,如何通过电子邮件地址选择用户,然后在rails consoleDevise 中手动设置密码?

另外,我应该去哪里查看文档以涵盖有关在使用 Devise 时操纵帐户的更多细节?

4

8 回答 8

161

现代设计允许更简单的语法,无需设置确认字段

user.password = new_password; user.save
# or
user.update(password: new_password)
于 2011-11-29T05:57:13.063 回答
58
# $ rails console production
u=User.where(:email => 'usermail@gmail.com').first
u.password='userpassword'
u.password_confirmation='userpassword'
u.save!
于 2013-01-23T02:44:44.360 回答
28

如果您在 rails 控制台中运行以下命令,它应该可以解决问题:

User.find_by(email: 'user_email_address').reset_password!('new_password','new_password')

http://www.rubydoc.info/github/plataformatec/devise/Devise/Models/Recoverable

于 2015-01-13T20:51:33.927 回答
5

您可以简单地更新密码字段,无需确认密码,设计将其以加密形式保存

u = User.find_by_email('user@example.com')
u.update_attribute(:password, '123123')
于 2017-02-06T06:30:11.803 回答
3

出于某种原因,(Rails 2.3??)

user = User.where(:email => email).first

对我不起作用,但是

user = User.find_by_email('user@example.com')

做到了。

于 2012-07-31T10:16:47.493 回答
3

1.登录ralis控制台

$ sudo bundle exec rails console production

2.然后更新管理员密码

irb(main):001:0> user = User.where("username = 'root'")
irb(main):002:0> u = user.first
irb(main):003:0> u.password="root2014@Robin"
=> "root2014@Robin"
irb(main):004:0> u.password_confirmation="root2014@Robin"
=> "root2014@Robin"
irb(main):005:0> u.save
=> true
irb(main):006:0> exit

3.刷新登录页面,使用新密码登录,尽情享受吧!

祝你好运!

于 2014-08-25T05:53:49.873 回答
2
User.find_by_email('joe@example.com').update_attributes(:password => 'password')
于 2017-07-21T18:18:57.280 回答
0

如果您的帐户因登录尝试次数过多而被锁定,您可能还需要执行以下操作:

user.locked_at = ''
user.failed_attempts = '0'
user.save!
于 2015-08-06T00:11:05.003 回答