web-dev-qa-db-ja.com

Rails consoleからパスワードリセットを考案する

アプリの実行中に、メールアドレスでユーザーを選択し、Rails console Devise?

また、Deviseの使用中のアカウントの操作に関する詳細については、ドキュメントをどこで確認できますか?

82
ylluminate

あなたが説明したようにそれは多かれ少なかれです:-)

# use mongoid
class User
  include Mongoid::Document
end


# then
user = User.where(email: '[email protected]').first

if user
  user.password = new_password
  user.password_confirmation = new_password
  user.save
end

6年後の更新:)

最新の工夫により、構文がよりシンプルになり、確認フィールドを設定する必要がなくなりました

user.password = new_password; user.save
# or
user.update_attributes(password: new_password)
124
# $ Rails console production
u=User.where(:email => '[email protected]').first
u.password='userpassword'
u.password_confirmation='userpassword'
u.save!
51
Eric Guo

Railsコンソールで以下を実行すると、トリックを実行するはずです。

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

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

22
gstraehle

パスワードフィールドを更新するだけで、確認パスワードは不要です。deviseは暗号化された形式で保存します

u = User.find_by_email('[email protected]')
u.update_attribute(:password, '123123')
5
Kshitij

何らかの理由で(Rails 2.3 ??)

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

うまくいかなかったが、

user = User.find_by_email('[email protected]')

それをやった。

3
valk

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.ログインページを更新し、新しいパスワードを使用してログインし、お楽しみください!

幸運を!

3
robinwen
User.find_by_email('[email protected]').update_attributes(:password => 'password')
1
copremesis

ログイン試行が多すぎてアカウントがロックされている場合は、次のことも必要になる場合があります。

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