LoginSignup
14

More than 1 year has passed since last update.

[Rails]No route matches [GET] "/users/sign_out”の対処法

はじめに

ログアウトを実行するとルーティングエラーが発生したのでアウトプット

環境

Rails 5.0.7.2
ruby 2.5.1
devise

問題点

deviseのアカウント編集機能を実装し、ログアウトをリクエストすると、
No route matches [GET] "/users/sign_out”とエラー発生

原因

sign_out時のメソッドがDELETEからGETに変更されているので(いつなったのかは把握できていない)、変更すれば解決しそう。

対処方法

config/initializers/devise.rbを編集▼

devise.rb
#省略
  config.sign_out_via = :delete
#省略

上記の記述をgetに変更▼

devise.rb
#省略
  config.sign_out_via = :get
#省略

サーバーを再起動して、rake routesをターミナルにて実行すると▼

 destroy_user_session GET    /users/sign_out(.:format)      devise/sessions#destroy

getメソッドに変化しているので再度ログアウトを実行すると想定通りの動作をするはず!
参考にしてください!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
14