入会確認メール送信機能を追加
昨日の「Ruby on Rails Tutorialを試してみた」に引き続き、Ruby on Rails Tutorial: Learn Rails by Exampleのサンプルアプリ「sample_app」に、いわゆるアクティベーションを機能を追加してActionMailerの勉強をしました。
チュートリアルでは、入会すると自動的にログインしますが、ログインせずメールを送信し、メールに記載されたURLにアクセスすると、ユーザアカウントを有効にして、サインインできるようにしました。
サンプルアプリ
感想
Ruby on Rails Tutorialには、ActionMailerについては説明は無いので、ネットを検索するなどして作りました。
Ruby on Rails Guides: Action Mailer Basics
これは今でもよくわかっていないのですが、ActionMailerを継承したクラスでurl_forを使ってURLを生成する際、default_url_optionsが設定されていないと、
RuntimeError (Missing host to link to! Please provide :host parameter or set default_url_options[:host]):
と怒られてしまいます。config/environments/development.rbに、
config.action_mailer.default_url_options = { :host => "localhost:3000" }
と指定したんですが、なんでこんな仕組みになっているんでしょうか。
余談
Ruby on Rails TutorialのPDF版を購入したので、印刷してみたのですが...500ページもあり、且つ、インクジェット用の紙に印刷したので、百科事典サイズになってしまいました。
Kindleが欲しい。