Deviseでメールアドレスの確認をスキップする

既に登録されているユーザーのメールアドレスを変更した場合、新しく登録されたメールアドレスは確認が取れるまでメインではないところ保存され、確認が取れ次第メインに昇格という感じっぽい。しかしそこまでしたくはない場合もあるのではなかろうか?と思ったので、とりあえずメールアドレス変えたら即時に変わる方法を探していたら、あった。

class UsersController < ApplicationController
  load_and_authorize_resource

  def update
    @user.skip_reconfirmation! # メールアドレス変更確認しない
    if @user.update_with_password(user_params)
      redirect_to user_path(@user), notice: '更新しました'
    else
      render action: :edit
    end
  end
end

Deviseは色々とハマりそうなポイントが多いので、これからもTipsを蓄積していきたいと思います。


カテゴリー Ruby, Ruby on Rails | タグ | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です