またまたDeviseです。
どうもDeviseは自分自身のパスワードを変更した場合、勝手にログアウトするようです。まぁそれはそれで正しい動作な気はしますが、そうしない方法はないかなーと思って探していたら、ありました。
class UsersController < ApplicationController load_and_authorize_resource def update @user.skip_reconfirmation! # メールアドレス変更確認しない result = if current_user.id == @user.id # 自身の更新ならパスワード入力を求める @user.update_with_password(user_params) else @user.update(user_params) end if result # パスワード変更でログアウトするのを防ぐ sign_in(@user, bypass: true) if current_user.id == @user.id redirect_to user_path(@user), notice: '更新しました' else render action: :edit end end end
無理矢理、再ログインさせるって感じですかね。