IT技術にまつわる実験ノート

「長編を書くより、短編を数多く完成させてください。それが上達への近道です」 by 手塚治虫

Heroku で sendgrid を使ってみる

アプリを作成する

Heroku にデプロイしたいので、データベースに PostgreSQL を指定して、アプリを作成する。

  • rails new sendgrid_heroku_sample -d postgresql
  • cd sendgrid_heroku_sample/

 

データベースを作成する。

 

gem をインストールする。

  • echo 'gem "figaro"' >> Gemfile
  • echo 'gem "devise"' >> Gemfile
  • bundle

 

figaro のコマンドで初期設定をする。

  • bundle exec figaro install

 

config/application.yml で環境変数を設定する。

RAILS_MASTER_KEY は、config/master.key の値をコピペする。

f:id:matt-note:20190516175527p:plain

 

Home コントローラを作成する。

  • bin/rails g controller Home index

 

config/routes.rb で root を Home コントローラの index アクションに設定する。

f:id:matt-note:20190516182607p:plain
 

Heroku にデプロイしてみる

Heroku にログインする。

  • heroku login

 

Heroku でアプリを作成する。

アプリ名は各自でアプリ名を指定する。

  • heroku create sendgrid-heroku-sample

 

figaro のコマンドで、Heroku での環境変数を設定する。

  • figaro heroku:set -e production

f:id:matt-note:20190516180508p:plain

 

リモートリポジトリを追加する。

コマンドの引数には、先ほど作成したアプリ名を指定する。

  • heroku git:remote -a sendgrid-heroku-sample

 

コミットして Heroku に push する。

  • git add .
  • git commit -m "first commit"
  • git push heroku master

 

しばらくするとデプロイが完了する。

以下のコマンドで、ブラウザでアプリにアクセスできる。

  • heroku open

f:id:matt-note:20190516181345p:plain

-> Heroku にデプロイできた。

 

sendgrid の設定を追加する

config/environments/production.rb で sendgrid の設定を追加する。

f:id:matt-note:20190516183505p:plain

 

メイラーを作成する

ジェネレーターを使って、メイラーを作成する。

  • bin/rails g mailer UserMailer

 

app/mailers/user_mailer.rb  を作成する。

f:id:matt-note:20190516182917p:plain

 

app/views/user_mailer/welcome.html.erb を作成する。

f:id:matt-note:20190516183101p:plain

 

devise の設定をする

 

devise のコントローラをカスタマイズする。

  • bin/rails g devise:controllers users

 

config/routes.rb で devise のデフォルトのルーティングを上書きする。

f:id:matt-note:20190516183406p:plain

 

app/controllers/users/registrations_controller.rb で、ユーザー登録した後にメール送信するメソッドを呼び出す。

f:id:matt-note:20190516183720p:plain

 

ビューを設定する。

app/views/layouts/application.html.erb で登録用のリンクと、ログアウト用のリンクを作成する。

f:id:matt-note:20190516183953p:plain

 

Heroku にデプロイする

  • git add .
  • git commit -m "Add sendgrid settings"
  • git push heroku master

 

Heroku のデータベースでマイグレーションを実行する。

  • heroku run rails db:migrate

 

Heroku にアクセスする。

  • heroku open

 

自分のメールアドレスで登録すると、登録時にメールが届くようになる。

f:id:matt-note:20190516185258p:plain

 

しばらくすると、メールが届く。

f:id:matt-note:20190516185428p:plain