【Rails+devise】サインアップ・パスワード変更画面の入力チェックエラー時のルーティングについて
はじめに
Ruby on Railsにてユーザ認証系の処理を実装する際に使用されるgemとしてdeviseがあります。
github.com
本記事ではサインアップおよびパスワード変更画面にて入力チェックエラーがある際のルーティングについて、発生した問題とその解決方法について記載したいと思います。
問題
サインアップおよびパスワード変更画面にて入力チェックエラーを引き起こすと下記のパスに遷移します。
- サインアップ画面:'/users'
- パスワード変更画面:'/users/password'
遷移後、ブラウザの更新ボタンを押すとエラーが発生します。
原因として、GETメソッドにて上記のパスが定義されていないことがあげられます。
解決方法
route.rbに下記を追加することで、GETメソッド時の遷移先パスを定義します。
devise_scope :user do get '/users', to: 'devise/registrations#new' get '/users/password', to: 'devise/passwords#new' end
おわりに
ルーティングの設定によるものだったので気をつけようと思いました。
また、下記に使用したバージョンと検証用アプリケーションの構築方法を記載しておきます。
同様のエラーに直面した際の参考になればと思います。
検証用アプリケーション
こちらの記事を参考に構築しました。「タスク用CRUD画面の作成」の手前までで実施しております。
blog.freedom-man.com