rails6 devise使用時 エラー「No route matches [GET] “/users/sign_out”」が発生した場合
rails6でdevise使用時にログアウトを実行して、エラー「No route matches [GET] “/users/sign_out”」が発生した場合の対処法を記述してます。Railsのバージョンは6.1.3を使用してます。
環境
- OS CentOS Linux release 7.9.2009 (Core)
- Ruby 3.0.0
- Rails 6.1.3
エラー全文
ログアウト実行時に発生
No route matches [GET] "/users/sign_out"
対処法
まずは、view側のmethodを「delete」から「get」に変更します。
<%= link_to "ログアウト", destroy_user_session_path, method: :delete %>
↓ 変更
<%= link_to "ログアウト", destroy_user_session_path, method: :get %>
次に「config/initializers」にある「devise.rb」の以下の箇所も「delete」から「get」に変更します。
# config.sign_out_via = :delete
config.sign_out_via = :get
後は、railsを再起動すれば、自分の場合は解決しました。
-
前の記事
php gmp_perfect_powerで累乗数であるかを判定する 2021.12.10
-
次の記事
TortoiseGitでGitの管理に含めないファイルを指定する 2021.12.10
コメントを書く