こんにちは!
前提・実現したいこと
devise を導入し、ユーザーの情報変更を確認用パスワードなしで、変更可能にしました。
しかし、そうするとパスワードのリセットができなくなることがわかりました。
パスワードリセットのためのメールが届いて、そこからパスワードの再設定をしようと、フォームに入力しsubmitすると以下のエラーがおきます。
色々調べて参考に書き換えなども行いましたが、うまく動作しませんでした。
実現したいことは、
・userは情報変更するために現在のパスワード入力を必要としない。
・パスワードリセットし再設定できるようになる。
この2点です。
何か助けになるコード、記事、考え方などありませんか?
よろしくお願いします!
パスワードリセット用トークン translation missing: ja.activerecord.errors.models.user.attributes.reset_password_token.blank
該当のソースコード
User.rb
以下を追加 def update_without_current_password(params, *options) params.delete(:current_password) if params[:password].blank? && params[:password_confirmation].blank? params.delete(:password) params.delete(:password_confirmation) end result = update_attributes(params, *options) clean_up_passwords result end
class Users::RegistrationsController < Devise::RegistrationsController def update_resource(resource, params) resource.update_without_password(params) end ↓変更後 def update_resource(resource, params) resource.update_without_current_password(params) end end
必要であれば、影響していると考えられるコードも追記します。
※追記
現在のパスワードは入力せずに、パスワード変更をすることはできます。
※2020/09/14追記
新しくわかったこと
パスワード忘れのリンクからユーザーがメールアドレスを入力し、リセット案内のメールが届く。
この時、DBを確認してみると、生成されたreset password tokenと届いたメールのreset password tokenが全然違うものになっていることがわかりました。
それに伴いタイトルを変えました。
あなたの回答
tips
プレビュー