LoginSignup
6
0

Rails7 link_toで"turbo-method: :post"を設定しているのにGETのHTTPメソッドとして認識される

Last updated at Posted at 2023-10-01

環境情報&前提条件

  • Ruby 3.2.1
  • Rails 7.0.0

解決したい内容

  • 以下のようにturbo-method: :postを設定しているlink_toタグにおいて[POST]メソッドではなく、[GET]メソッド扱いされる。
<%= link_to hoge_path(hoge), data: { turbo: false, "turbo-method": :post } %>
<!-- 画面に表示されるエラー -->
Routing Error
No route matches [GET] "/hoge"

解決手順

  • turbo: false"turbo-method": :postは共存できない。turbo: falseの記述を削除して、以下のようにすることで解決。
<%= link_to hoge_path(hoge), data: { "turbo-method": :post } %>

補足

  • link_toはデフォルトでは[GET]メソッド扱いされるので、turbo: falseをつけている場合は他のプロパティに関わらずデフォルトの[GET]扱いとなるようである。
  • turboによるトラブルを防ぐために、turbo: falseのようなturboを無効化する処置を取るケースも多いと考えられる。
  • 今回はturbo: falseを消さなければうまく動作しないケースで、筆者は少しハマってしまったので記事化しました。
6
0
0

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
6
0