らくだ🐫にもできるRailsチュートリアル|12.2

※毎回書いたほうがいい気がするので書いておきます※
平文の部分をI18nでちょこちょこ日本語化しているのですが
その部分に関しては特に記述していなくてもたまにコードが違ったりしています。
t(‘.hogehoge’)って部分です
どうぞお気になさらず。

12.2 パスワード再設定のメール送信

パスワードの再設定に関するメールの部分を作っていく
11章でUserメイラーを生成した際にデフォルトのpassword_resetメソッドなどもまとめて生成されているので
それを使って定義していく!

12.2.1 パスワード再設定のメールとテンプレート

11.3.3で行ったリファクタリングと同様の作業を行っていく

最初にUserメイラーにpassword_resetメソッドを作成し (リスト 12.7)、続いて、テキストメールのテンプレート (リスト 12.8) とHTMLメールのテンプレート (リスト 12.9) をそれぞれ定義します。

Userメイラーにpassword_resetメソッドを作成

パスワード再設定のテンプレート (テキスト)

パスワード再設定のテンプレート (HTML)

プレビューも見られるように設定

16行目のアドレスにアクセスするとプレビューを確認できる
→できる!

実際の動作を確認

日本語のままだと化けるので/sample_app/config/application.rbで言語をenにしておく

パスワードの再設定フォームに正しいアドレスを入力してボタンを押すとこうなる
(メールを確認してねって感じのフラッシュメッセージが表示されているはずだけどI18nで英語の設定してないから翻訳エラーな文章)

サーバーのログはこうなる
(I18nで英語の設定してないから略)

演習

  1. ブラウザから、送信メールのプレビューをしてみましょう。「Date」の欄にはどんな情報が表示されているでしょうか?
  2. パスワード再設定フォームから有効なメールアドレスを送信してみましょう。また、Railsサーバーのログを見て、生成された送信メールの内容を確認してみてください。
  3. コンソールに移り、先ほどの演習課題でパスワード再設定をしたUserオブジェクトを探してください。オブジェクトを見つけたら、そのオブジェクトが持つreset_digestとreset_sent_atの値を確認してみましょう。
  1. 再設定フォームの送信ボタンを押した日時
  2. emailと再設定トークンの値を持ったURLが記載されたメール(textとHTML)が送信されている
  3. reset_digest → 値が入っている
    reset_sent_at → 再設定フォームの送信ボタンを押した日時の値が入っている

12.2.2 送信メールのテスト

メイラーメソッドのテスト
(再設定の時とほぼ同じ→本文へのテストも同じくtextとHTMLで分ける)
(言語はjaに戻しておく)

演習

  1. メイラーのテストだけを実行してみてください。このテストは greenになっているでしょうか
  2. リスト 12.12にある2つ目のCGI.escapeを削除すると、テストが redになることを確認してみましょう
  1. GREEN
  2. RED

まとめとか感想

(おうちの都合で)間は結構空いちゃったけど、内容は割とさっくり。
実際本文も短めですもんね。
なるべくサクサク進みたい!と思っています!!

らくだ🐫にもできるRailsチュートリアルとは

「ド」が付く素人のらくだ🐫が勉強するRailsチュートリアルの学習記録です。
自分用に記録していますが、お役に立つことがあれば幸いです。

調べたとはいえらくだ🐫なりの解釈や説明が含まれます。間違っている部分もあるかと思います。そんな所は教えて頂けますと幸いなのですが、このブログにはコメント機能がありません💧お手数おかけしますがTwitterなどでご連絡いただければ幸いです