問題タブ [hotwire-rails]

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.

0 投票する
2 に答える
283 参照

ruby-on-rails - Hotwire を既存の Rails プロジェクトに統合する際の問題

このコミュニティに参加したばかりで、これが最初の投稿です。

私はいくつかの Hotwire チュートリアルに従っており、この技術を使用していくつかのプロトタイプを作成しました。JS フロント エンド フレームワークと比較して、複雑さを大幅に軽減しながら、SPA のような応答性を簡単に実現できることに感銘を受けました。

しかし、コードとプロセスをプロトタイプから既存の Rails プロジェクトに変換しようとすると、まったくうまくいかないことがわかりました。さらに悪いことに、私はその理由を知りません。

次の一般的なプロセスでトレーサー コードを書き込もうとしました。

  1. Hotwire gem を含める
  2. ターミナル コマンドで Hotwire をインストールする
  3. 関連するモデルからのブロードキャストを含める
  4. ビュー レベルで、turbo_stream_from タグをリスナーとして適用します。
  5. モデル データを更新する場所に turbo_frame_tag を含めます

これは私のプロトタイプでは確実に機能しますが、既存のプロジェクトでは機能しません。既存のプロジェクトが最新バージョンの Rails や Ruby を使用していないことが原因ではないでしょうか? (アップグレードも簡単ではありません。) 現在、Ruby バージョン 2.7.1 と Rails バージョン 6.0.2 を使用しています。

プロジェクト コードの一部を提供する必要があることはわかっていますが、どこから始めればよいかさえわかりません。誰かが私にいくつかのガイダンスを提供できるなら、私は本当に感謝しています. ありがとうございました!

編集:これらがすべて役立つ場合、Hotwireにインデックスページのモデルインスタンスのリストを自動更新させようとしたときに表示される種類の端末メッセージです。ブロードキャストは機能しているように見えますが、私のリスナーは機能していませんか?

データベースの変更をコミットするときの端末メッセージ

ストーリーのインデックスページ

ストーリー部分のコード

ストーリー モデルのコード

編集: Chrome 開発ツールによる HTML ソース