1

ホットワイヤー、刺激、webpacker などの新しい機能を備えた Rails 6 テンプレート (Jumpstart Pro) を使用しています。基本的なものには問題なく機能します...新しいモデルの足場やCRUDフォームの作成など。

ただし、私のページの 1 つはベンダーの JavaScript ウィジェットを使用しており、これには jquery も必要です。

Jumpstart Pro テンプレートもそのフォーラムも、webpacker を介して jQuery を追加するための最新のドキュメントやサポートを提供していません (たとえば、「正しい方法」で jquery を追加するためのサポートはありません)。

だから私は、ヘッダーの古き良きスクリプトタグを介して、それを必要とする1つのページにjqueryを追加しました

%script{:src => "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"}

その後、ベンダーの JavaScript を使用してベンダーのウィジェットを初期化し、内部$(document).ready(function(){ init_code_goes_here });でウィジェットがページにロードする時間を確保します。

動作:ページの URLをブラウザーに「localhost:5000/cool_page」または「mydev.ngrok/cool_page」と入力すると、正常に動作します。

壊れています: しかし、アプリ内のリンクをクリックしてlink_to "cool page", "/cool_page"(経由で) ページに移動しても機能しません:

  • jQuery が読み込まれます (jquery が読み込まれていることを確認するために div を非表示にしない小さな「hello world」jquery スクリプトがあります)
  • ベンダー ウィジェットが正しくロードされない (ブラウザ コンソールでウィジェット オブジェクトが null であると表示される)

しかし、ページを更新すると、すべて正常に読み込まれます。

したがって、ページは「ロード」された場合は機能しますが、別のページを介して到達した場合は機能しません。

このことから、hotwire/etc の背後にある魔法が、ページに移動したときにページの適切な読み込みを妨げていると推測します。

では、問題は、ホットワイヤー対応の Rails 6 アプリで、クリックしたときに単に Rails に指示するナビゲーション リンクを設定する方法はありますか? ホットワイヤー ショートカットをスキップして、このページを実際にロードすることです。

4

1 に答える 1