アプリの実行中に、メールアドレスでユーザーを選択し、rails console
Devise 内で手動でパスワードを設定するにはどうすればよいですか?
また、Deviseを使用する際のアカウントの操作に関するこの詳細については、ドキュメントをどこで確認すればよいですか?
回答:
あなたが説明したようにそれは多かれ少なかれです:-)
# 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
た試み。毎回nilが返されるだけなので、テーブルにアクセスできないようです。テーブル全体をクエリし、その中のすべてのエントリを最初に取得して、最初にそのテーブルにアクセスしているかどうかをテストするのはどうですか?(ただし、ここでは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')