前章からキャッチアップが難しくなってしまい、おそらく本章も本質的な理解は難しいのではという懸念を抱えつつ挑む。
1周目から完璧に理解できる人がいるとしたら、それを天才と呼ぶのだろう...。
本章では、パスワードの再設定の機能を実装する。
Railsチュートリアルでは新機能を実装する前にモックアップが掲げられているのでこれからなにをつくるのかは理解しやすい。
12.1 PasswordResetsリソース
最初にパスワード再設定用のコントローラを作成する。
上のコマンドでは、テストを生成しないというオプションを指定していることにご注目ください。これはコントローラの単体テストをする代わりに、今回は11.3.3から統合テストでカバーしていくからです。
とあるが、「単体テスト」と「統合テスト」の違い、それどころかそれぞれのテストの意味は忘却の彼方へ...。
パスワードリセットにおいても、users
テーブルにカラムを追加するらしい。
rest_digest
やreset_sent_at
などだ。
ということは、複数回リセットした場合はreset_sent_at
はどうなるんだろう?
12.2 パスワード再設定のメール送信
この節は短い。
コードコピペしてたら終了したが、主にviewnに関するところを実装したっぽい。
12.3 パスワードを設定する
パスワードを変更する際は次のケースに留意する必要がある。
- パスワード再設定の有効期限が切れていないか
- 無効なパスワードであれば失敗させる (失敗した理由も表示する)
- 新しいパスワードが空文字列になっていないか (ユーザー情報の編集ではOKだった)
- 新しいパスワードが正しければ、更新する
これらのロジックはどうやらコントローラーに実装するらしい。