在运行应用程序时,如何通过电子邮件地址选择用户,然后在rails console
Devise中手动设置密码?
另外,在使用Devise时,我该去哪里查看文档以涵盖有关帐户操作的更多详细信息?
Answers:
或多或少像您描述的那样:-)
# 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)
User.store_in 'admin_users'
但是收到undefined method
。我似乎无法访问该表,因为每次都返回零。如何查询整个表并只是最初获取其中的所有条目以进行测试以查看我是否最初进入该表呢?(在这里使用MySQL,但是与ActiveRecord无关紧要。)
# $ rails console production
u=User.where(:email => 'usermail@gmail.com').first
u.password='userpassword'
u.password_confirmation='userpassword'
u.save!
User.find_by_email('joe@example.com').update_attributes(:password => 'password')
如果您在rails控制台中运行以下命令,则应达到以下目的:
User.find_by(email: 'user_email_address').reset_password!('new_password','new_password')
http://www.rubydoc.info/github/plataformatec/devise/Devise/Models/Recoverable
User.find_by(email: 'user_email_address').reset_password('new_password','new_password')
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.刷新登录页面,使用新密码登录,即可享受!
祝好运!
User.find_by_email('joe@example.com').update_attributes(:password => 'password')