deviseで記述があっているのに、ログアウトできない現象


はじめに

 deviseを導入してユーザー管理機能を実装していたが、予期せぬエラーに見舞わせたので、記録しておく。

エラー内容

Routing Error
No route matches [GET] "/users/sign_out"

<%= link_to 'ログアウト', destroy_user_session_path, method: :delete, class: :logout %>

もちろん、method: :deleteとビューファイルにも記述していた。なぜか、ルーティングでHTTPメソッドがGETのものを探し出していた。

ローカルサーバーを再起動させる

ターミナルで
「control + c」
入力。
再び、ターミナルで「rails s」実行

荒技!?

config/initializers/devise.rb/269行目
config.sign_out_via = :delete

:delete:getに変える。

最後に

 記述もあっているのに、なぜこのエラーが出たのか、いまだにわからない…。全く同じ記述でも、エラーが出る時と出ない時がある。