「ログアウト」ボタンのHTTPメソッドについて

・エラー内容

ログアウトボタンのリンクをrails routesに従ってdestroy_user_session_pathとしたところ、以下のエラーが出た。

f:id:Fujisan3776:20201013124045p:plain

 

・原因

ログアウトのパスはあっているが、HTTPメソッドがGETになっていた。

 

・対策

コードにHTTメソッドをDELETEになるように追加した。

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

rails routesで見たPrefixコードとHTTPメソッドの組み合わせは間違っていない(DELETEになっている)が、何故だか勝手にGETになってしまうようです。PictweetでもログアウトのリンクにのみHTTPメソッドの指定を記載していました。

※ちなみに、methodとdeleteの間には半角スペースを入れないとエラーになるので注意。