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