[Rails][devise]認証メール送信後、画面遷移先をデフォルトから変更する

Railsのdeviseで認証メールを送信後、画面遷移先がデフォルトになっている。「メールを送信しました」とか表示している画面を作って、そっちに遷移させたい。

画面遷移先をデフォルトから独自ルートに変更してみよう。

Railsのdevise認証メール送信後の画面遷移先を指定する!

[前提]

deviseのrouteはデフォルトではなくusers modelを生成して以下のように指定しています。


devise_for :users, controllers: {
  registrations: "users/registrations",
  confirmations: "users/confirmations",
  sessions: "users/sessions",
  passwords: "users/passwords"
}

app/controllers/users/registrations_controller.rb

# The path used after sign up for inactive accounts.
# def after_inactive_sign_up_path_for(resource)
#   super(resource)
# end

とコメントアウトされている箇所があるのでここを利用します。

def after_inactive_sign_up_path_for(resource)
  XXXX_path # 遷移したい画面先
end

これで認証メール送信後に、デフォルトルートから指定したルートに遷移するようになります!\(^o^)/

かんたーん\(^o^)/

認証メール送信後に、いきなりデフォルトページに飛ぶとびっくりしちゃうので

ワンクッションおくためにこのように遷移先を1つ挟むといいですね(*^^*)

 

何か参考になればい幸いです(*^^*)