RailsとJavaScript(メモ)
ブラウザはネイティブではDELETEリクエストを送信できないため、RailsではJavaScriptを使って偽造します。つまり、JavaScriptがオフになっているとユーザー削除のリンクも無効になるということです。JavaScriptをサポートしないブラウザをサポートする必要がある場合は、フォームとPOSTリクエストを使ってDELETEリクエストを偽造することもできます。こちらはJavaScriptがなくても動作します 。
注)詳しくはRailsCastの "JavaScriptを使わない削除" (英語) を観てください。
JavaScriptの入れ方わからんから、DELETE使うやつは飛ばしてこ…。
(なおRails 7.0.4)
#これだとdeleteではなくget扱いになる <%= link_to "Log out", logout_path, method: :delete } %>
#調べてみたらturboの書き方でいけるとあったけど、だめだった。 <%= link_to "Log out", logout_path, data: { turbo_method: :delete } %>
#buttonならいけるので、これで妥協。(Railsチュートリアルのスタイルシートがボタンの所だけ変な感じになるが…) <%= button_to "Log out", logout_path, method: :delete %>
link_toからbutton_toに変えたので、テストのassert_selectもa[href=?]から[action=?]に変えておく。
(チュートリアルで一番てこずったが、立ち止まって、こういう試行錯誤をするなかで理解が進んでいっている)