LoginSignup
5
0

【Rails7】Javascriptがリロードしないと動かないとき

Posted at

結論から

 data:{turbo: false} を加えてください。

 <%= link_to "リンク", some_path, data: { turbo: false } %>
 <%= form_with model: @model, data: { turbo: false } do |form| %>

 

原因

Rails7ではTurbo(以前はHotwireとも呼ばれていました)がデフォルトで有効になっており、これが悪さをしています。

とはいえ、基本はTurboを否定する必要はないので、javascriptが関わる部分だけ上記の記述をしましょう。

別の方法

アプリ全体でTurboを無効にする

application.js
- import "@hotwired/turbo-rails"
+ import { Turbo } from "@hotwired/turbo-rails"
+ Turbo.session.drive = false

ちなみに意味がない方法

■ document.addEventListener("turbo:load", function() {})
  ⇒ "turbo:load"を"load"にしてみる

 turboの記述は、あってもなくてもデフォルトで有効になります。

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