【124日目】【1日20分のRailsチュートリアル】【第10章】アカウント有効化メールのビューを作成する
今日は「10.1.2 AccountActivationsメイラーメソッド」のメールにアカウント有効化リンクを追加するところから。
10.1.2 AccountActivationsメイラーメソッド
ここでは挨拶文にユーザー名を含め、カスタムの有効化リンクを追加します。
この後、Railsサーバーでユーザーをメールアドレスで検索して有効化トークンを認証できるようにしたいので、リンクにはメールアドレスとトークンを両方含めておく必要があります。
account_activations/q5lt38hQDc_959PVoo6b7A/edit?email=foo%40example.com
こんな感じでURLにトークンとメールアドレスを含めておくようにする。
ここまでできれば、リスト10.11で定義した@userインスタンス変数、editへの名前付きルート、ERBを組み合わせて、必要なリンクを作成できます (リスト10.12とリスト10.13)。
○テキストビュー
app/views/user_mailer/account_activation.text.erb
Hi <%= @user.name %>, Welcome to the Sample App! Click on the link below to activate your account: <%= edit_account_activation_url(@user.activation_token, email: @user.email) %>
○HTMLビュー
app/views/user_mailer/account_activation.html.erb
<h1>Sample App</h1> <p>Hi <%= @user.name %>,</p> <p> Welcome to the Sample App!Click on the link below to activate your account: </p> <%= link_to "Activate", edit_account_activation_url(@user.activation_token, email: @user.email) %>
今更だけどテキストビューとHTMLビューがあるのは送り先によってテキストメール送るかHTMLメールで送るか違うからなのかな。
リスト10.12やリスト10.13で定義したテンプレートの実際の表示を簡単に確認するために、メールプレビューという裏技を使ってみましょう。
へー、そんな機能が。動作確認のために実際にメール送らないといけないのかと思ってた。
これを利用するには、アプリケーションのdevelopment環境の設定に手を加える必要があります (リスト10.14)。
元々あったconfig.action_mailer.raise_delivery_errors = false
は削除した。
config/environments/development.rb
: # Don't care if the mailer can't send. config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :test host = 'rails-tutorial-c9-mhartl.c9.io' config.action_mailer.default_url_options = { host: host } :
今日の学習時間は【25分】。
次は「10.1.2 AccountActivationsメイラーメソッド」のUserメイラーのプレビューファイルの更新をするところから。
ここまで来ると1項が長いね…。