LoginSignup
16

More than 3 years have passed since last update.

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

Posted at

はじめに

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

環境

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
  3. You can use dark theme
What you can do with signing up
16