在运行应用时,如何通过电子邮件地址选择用户,然后在设计rails console
内手动设置密码?
此外,在使用Devise时,我将在哪里查看文档以涵盖有关操作帐户的更多详细信息?
答案 0 :(得分:123)
或多或少如你所描述的那样: - )
# 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
现代设计允许更简单的语法,无需设置确认字段
user.password = new_password; user.save
# or
user.update_attributes(password: new_password)
答案 1 :(得分:51)
# $ rails console production
u=User.where(:email => 'usermail@gmail.com').first
u.password='userpassword'
u.password_confirmation='userpassword'
u.save!
答案 2 :(得分:22)
如果您在rails控制台中运行以下操作,它应该可以解决问题:
User.find_by(email: 'user_email_address').reset_password!('new_password','new_password')
http://www.rubydoc.info/github/plataformatec/devise/Devise/Models/Recoverable
答案 3 :(得分:5)
您只需更新密码字段,无需确认密码,设计将以加密形式保存
u = User.find_by_email('user@example.com')
u.update_attribute(:password, '123123')
答案 4 :(得分:3)
出于某种原因,(Rails 2.3 ??)
user = User.where(:email => email).first
对我不起作用,但是
user = User.find_by_email('user@example.com')
做到了。
答案 5 :(得分:3)
1.登录ralis console
$ 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.刷新登录页面,使用新密码登录,享受!
祝你好运!
答案 6 :(得分:1)
User.find_by_email('joe@example.com').update_attributes(:password => 'password')
答案 7 :(得分:0)
如果您的帐户因过多登录尝试而被锁定,您可能还需要执行以下操作:
user.locked_at = ''
user.failed_attempts = '0'
user.save!