从Rails控制台devise密码重置

在运行应用程序时,如何通过电子邮件地址select用户,然后在Devise的Rail rails console手动设置密码?

另外,我将在哪里审查文档,以涵盖在使用Devise时操纵账户的更多细节?

这或多或less像你所描述的那样:-)

 # use mongoid class User include Mongoid::Document end # then user = User.where(email: 'joe@example.com').first if user user.password = new_password user.password_confirmation = new_password user.save end 

6年后更新:)

现代devise允许更简单的语法,不需要设置确认字段

 user.password = new_password; user.save # or user.update_attributes(password: new_password) 
 # $ rails console production u=User.where(:email => 'usermail@gmail.com').first u.password='userpassword' u.password_confirmation='userpassword' u.save! 

如果你在rails控制台中运行以下代码,它应该可以做到这一点:

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

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

您只需更新密码字段,不需要确认密码,devise将以encryptionforms保存

 u = User.find_by_email('user@example.com') u.update_attribute(:password, '123123') 

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

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

不适合我,但是

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

做到了。

1.login到ralis控制台

 $ sudo bundle exec rails console production 

2.然后更新pipe理员的密码

 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.刷新login页面,使用新密码login,享受!

祝你好运!

 User.find_by_email('joe@example.com').update_attributes(:password => 'password') 

如果您的帐户因login尝试过多而被locking,则可能还需要执行以下操作:

 user.locked_at = '' user.failed_attempts = '0' user.save!