从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!