質問: 現在railsのバージョン4.2.5にて、deviseを用いて簡単なアプリケーションの開発をしているのですが、メールを使わずにパスワードをリセットをする必要が出てきました。 そこで、usersテーブルに秘密の質問とその答えのカラムを用意し、以下のような手順でパスワードリセットを作ろうと考えました。 1deviseのログイン画面にあるパスワードリセットのリンクを書き換えて、ここをクリックすると、全ユーザから自分の名前を選択する画面に移動。 2名前を選択すると、秘密の質問を選択するフォームと答えを入力するフォームの画面へ移動。 3質問と答えを送信し、それがあらかじめ登録しておいたものと同じ場合、パスワード変更の入力フォームとパスワード確認用のフォームを表示(無ければその旨を伝える文を表示) 4新しいパスワードを入力し送信すると、パスワードが変更されたことを伝え、ログイン画面に移動 今この中で3の条件分岐までは作れたのですが、パスワードを変更するフォームの作り方が分からない状況です。 そこで質問なのですが、まずそもそもdeviseにおいてメールを使わずにパスワードリセットを実装することは可能でしょうか? またもし可能であれば、どのようにすればパスワードを変更する事が出来るでしょうか? まだ初めて一か月程度で全然知識がない状況なので、難しいことだと分からないかもしれないですが、ご回答のほどよろしくお願いいたします。
回答: 可能です。 「秘密の質問を選択するフォームと答えを入力するフォームの画面」をすでに作られているようなので、似たような書き方で「user(特に記載がないので、deviseを使用しているモデルがuserだと仮定します)のpasswordを書き換えるフォーム」を実装すればよいです。