tapitapi’s blog

1日1杯タピオカ!エンジニア

【Ruby on Rails: devise】user登録時に確認URLをメール送信(confirmable)

ユーザー登録の際、確認URL付きのメールを送信する方法を紹介。

deviseは既に導入している前提で進めます

 

1.app/models/user.rb に:confirmable追加

devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable, :confirmable

 

2.  config/initializers/devise.rbで設定を行う

 

変更時に自動で確認メールを送信する場合はtrue,

しない場合はfalse(メールアドレス変更を許可しない場合など)

config.reconfirmable = false

 

3. confirmable用のカラムをusers tableに追加するためのmigrateファイル作成(db/migrate/20XXXXXXXXXX_add_confirmable_to_devise.rb)

class AddConfirmableToDevise < ActiveRecord::Migration[6.0]
 def change
  add_column :users, :confirmation_token, :string
  add_column :users, :confirmed_at, :datetime
  add_column :users, :confirmation_sent_at, :datetime


  # add_column :users, :unconfirmed_email, :string # reconfirmable = true  の時のみコメントアウトを消して実行する
  add_index :users, :confirmation_token, unique: true
 end
end

 

4. rails db:migrate を実行し、3. のカラムをusers tableに追加

 

5. 必要なら、確認URL付きメールの見た目app/views/auth/mailer/confirmation_instructions.html.slimを変更する。

 

※confirmation_instructions.html.slimは、htmlメール(tableを使用したやつ)の書き方にすること。

 

以上です!

 

おやすみなさいいいいいぃぃぃぃ