0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【学習】Ruby on Rails チュートリアル 第7版 - 第11章 アカウントの有効化

Last updated at Posted at 2023-06-29

6/30 8:30 開始
・アカウントの有効化
→新規登録時、本当にそのメールアドレスの持ち主なのかどうかを確認する。

(1)有効化トークンやダイジェストを関連付けておいた状態で、
(2)有効化トークンを含めたリンクをユーザーにメールで送信し、
(3)ユーザーがそのリンクをクリックすると有効化できるようにする

11.1.1まで終了

6/30 9:00 終了

7/4 8:20 開始

*メソッド参照
(例)createアクション実行前に、create_activation_digestというメソッドを探索して、実行する。
今回のケースでは、create_activation_digestメソッドはUserモデル内でしか使わないので
privateキーワードを指定する。

before_create :create_activation_digest

11.1まで終了

7/4 8:45 終了

7/5 8:10 開始

・メーラーの生成
モデルやコントローラと同様にrails generateで生成できる。

rails generate mailer UserMailer account_activation password_reset

上記の例では、account_activationメソッドと、password_resetメソッドが生成される。
生成したメーラーごとに、ビューのテンプレート↓が2つずつ生成される。
(HTMLメール用のテンプレート、テキストメール用のテンプレート)

11.2.1まで終了

7/5 8:40終了

7/6 8:10 開始

*メールプレビュー
メッセージをその場でプレビューする機能

config/environments/development.rb

.
.
.
config.action_mailer.raise_delivery_errors = false
host = 'example.com'
config.action_mailer.default_url_options = { host: host, protocol: 'https' }
.
.
.

※'example.com'は、
クラウドIDEでは、ブラウザで見えるURLを設定する。
hostにはhttps://プレフィックスを含めては"いけない"

さらに、プレビューファイルの更新が必要
test/mailers/previews/user_mailer_preview.rb

・
・
・
# Preview this email at
 # http://localhost:3000/rails/mailers/user_mailer/account_activation
 def account_activation
   user = User.first
   user.activation_token = User.new_token
   UserMailer.account_activation(user)
 end
・
・
・

コメントアウトで明示されている指定のURLでアカウント有効化メールをプレビューできるようになる。
クラウドIDEを使っている場合は、localhost:3000の部分を対応するベースURLに置き換える。

11.2まで終了

7/6 8:36 終了

7/9 18:00 開始

7/9 20:00 終了

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?