Réinitialiser le mot de passe de la console Rails

Lors de l’exécution d’une application, comment sélectionnez-vous un utilisateur par adresse électronique, puis définissez-le manuellement dans la rails console pour Devise?

Aussi, où pourrais-je consulter la documentation pour couvrir plus de détails à ce sujet concernant la manipulation des comptes lors de l’utilisation de Devise?

C’est plus ou moins comme vous l’avez décrit 🙂

 # 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 

Mise à jour 6 ans plus tard 🙂

L’instrument moderne permet une syntaxe plus simple, pas besoin de définir le champ de confirmation

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

Si vous exécutez la commande suivante dans la console des rails, vous devriez faire le tour:

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

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

Vous pouvez simplement mettre à jour le champ de mot de passe, pas besoin de mot de passe de confirmation, imaginez-le l’enregistrer sous forme cryptée

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

Pour une raison quelconque, (Rails 2.3 ??)

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

n’a pas fonctionné pour moi, mais

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

l’a fait.

1.Login à la console de ralis

 $ sudo bundle exec rails console production 

2.Puis mettre à jour le mot de passe de l’administrateur

 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.Réformez la page de connexion, utilisez le nouveau mot de passe pour vous connecter, profitez-en!

Bonne chance!

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

Si votre compte est bloqué par trop de tentatives de connexion, vous devrez peut-être faire:

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