LoginSignup
2
1

Railsでlink_toのmethod: :deleteが使えない

Posted at

環境

Ruby:3.2.1
Rails:7.0.0

Rails5.1からlink_toのdeleteメソッドがGetメソッドになる

 <%= link_to 'ログアウト', 'パス', method: :delete %>

リンクを押すと以下のエラーが発生します。

スクリーンショット 2024-01-15 16.30.21.png

methodをdeleteに指定したのに、Getメソッドで送られています。
開発者ツールでHTMLを確認してみたところ、deleteになっていることが確認できます。

<a rel="nofollow" data-method="delete" href="パス">ログアウト</a>

原因

link_toの場合、deleteメソッドはJavascriptでGetをDeleteに変換されるそうです。
そのため、今回はJavascriptが効いていなかったのでGetのままになっているのだと考えられます。

解決策

今回、自分が実施した対応はlink_toを以下のように修正することです。
詳しい内容は参考資料をご覧ください

<%= link_to "ログアウト", "パス", data: {turbo_method: :delete} %>

参考資料

Rails7でlink_toのmethod: :deleteが動作しない
rails7でlink_toのmethod: :deleteが動作しない場合の対処

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1