【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を使用したやつ)の書き方にすること。
以上です!
おやすみなさいいいいいぃぃぃぃ