Ruby
Rails

Deviseを利用したパスワードを手動で変更する方法

Railsでアプリケーションを作る際、deviseを利用するとログイン認証部分が簡単に作成できます。

deviseを利用するとユーザーのパスワードは暗号化されて保存されます。

開発をしているとデータを直接いじってパスワードを変更したい時があります。
その場合、以下のようにします。

user = User.find(パスワードを変更したいユーザーのID)
user.password = '新しいパスワード'
user.password_confirmation = '新しいパスワード'
user.save

もっと簡潔に書くならば、以下のようになります。

User.find(id).reset_password(password, password)

Device::Recoverable#reset_password を利用して、以下のようにパスワードを変更することも可能です。

User.find(id).reset_password(password, password)

by @nishina555