はじめに
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
に変える。
最後に
記述もあっているのに、なぜこのエラーが出たのか、いまだにわからない…。全く同じ記述でも、エラーが出る時と出ない時がある。