🍣
【Rails7】link_toで作成したリンクのmethod: :postがGETになる問題
エラー内容
「Rails7」でviewテンプレートに以下のコードを書きました。
<%= link_to chat_rooms_path(params: { user_id: user.id }), method: :post, class: "no-underline" %>
チャットルームコントローラーのPOSTメソッドを使いたいところ、GETで呼び出されたためGETのメソッドはなかったので下記の画像のようにエラーになりました。
解決方法
- Rails6の場合「rails-ujs」を読み込む必要がある。参考
- Rails7からはTurboがデフォルトになり、rails-ujsの機能はTurboが引き受ける形になったので、data-methodではなくdata-turbo-methodを使うようになった参考
<%= link_to chat_rooms_path(params: { user_id: user.id }), data: { "turbo-method": :post }, class: "no-underline" %>
Discussion