問題タブ [turbo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails 編集フォーム更新クエリ エラー (ターボ フレーム)
サービスを更新して、古い値を持つ SQL クエリに送信される名前を除くすべての更新を送信しようとすると。
編集フォーム: https://i.stack.imgur.com/YSZuD.png
これを送信すると、次のようになります。
ref
新しい値を取得しますがname
、「Tratamento 2」(古い値) を検索します。
/services/_edit.html.erb
services_controller.rb
service_params:
ruby-on-rails - Rails アプリケーションのすべてのフォームで Hotwire / Turbo (Turbolinks の代替) を無効にするにはどうすればよいですか?
Rails 7 では、Turbolinks は Hotwire / Turbo に置き換えられました。これは Web リンクにパッチを当てて、Turbolinks と同じように AJAX スタイルのリクエストにするだけでなく、フォームにもパッチを当てます。全体として、これがアプリケーションの一部を壊すことがわかりました。
- ある種の JS ビヘイビアーが既に関連付けられているフォームが競合していました。
- 標準的な Rails のエラー処理イディオム - "set the
flash
andrender :new
/render :edit
" - 驚くほど壊れます。指を追加status: :unprocessable_entity
して交差させる必要があります。 - フォーム送信を処理するコントローラーがパッチ アンカー ( ) を含む URL にリダイレクトする場合
...#foo
、Turbo はそれを取り除きます。
data: {turbo: false}
最終的には、コード ベース全体に分散させることが理にかなっているほどの量しかありません。さらに悪いことに、SimpleForm を使用しているため、これはさらに扱いにくくなりhtml: {data: {turbo: false}}
ます。
フォームに対してのみTurbo を _globally 無効にする方法はありますか(理想的には、フォームの起源に関係なくすべての<form>
フォーム -タグとその中のすべてを完全にそのままにしてください)、残りの動作は変更しませんか?
ruby-on-rails - TurboでRailsでbutton_toを使用して確認プロンプトを呼び出す方法
以前は Rails でbutton_to
タグを使用すると、このような確認ダイアログを使用することができました
data: { confirm: 'Are you sure?' }
内部で @rails/ujs ライブラリによって使用された Rails マジック データ属性です。
Rails 7 以降、このライブラリはデフォルトでは有効ではなくなりました。この Rails の代わりに Turbo ライブラリを使用します
そして今、このコードは機能しません
公式のRailsドキュメントとTurboハンドブックには情報がありません
私が試したこと
でも結果が出ない
SOで解決策は見つかりませんでしたが、Hotwireフォーラムで見つかりました。刺激アクションを使用したこのソリューション。少しだけ改善します
それは機能しますが、非常に難しく、見栄えが悪く、Rails がクールであることに慣れています。