現在、JavaScript アセットを提供する 2 つの gem を使用しています。これら 2 つの資産は互いに競合しています。
私の場合は、lazy_high_charts gem とbootstrap-wysihtml5-rails gem です。
現在のプロジェクトには両方があります。最初に、いくつかのテキストボックス用に bootstrap-wysihtml5-rails gem しか持っていませんでした。昨日、ダッシュボードのプロジェクトに lazy_high_charts ジェムを追加しました。
アプリケーション内の複数の場所に wsiwyg テキスト ボックスがあります。ダッシュボード用に、インデックス アクションを使用して新しいコントローラー ダッシュボードを作成しました。
lazy_high_charts_gem を追加し、application.js マニフェスト ファイル内に javascript ファイルを要求した後、プロジェクト全体のテキスト ボックスのすべての wysiwyg エディターが消えました。application.js ファイルから lazy_high_charts JavaScript 要件を削除するとすぐに、wysiwyg エディターが復活しました。
最初の試み これを修正する最初の試みは、JavaScript 要件の順序を次のように変更することでした。
アプリケーション.js
//= require bootstrap-wysihtml5
//= require bootstrap-wysihtml5/locales/de-DE
//= require highcharts/highcharts
//= require highcharts/highcharts-more
//= require highcharts/highstock
宛先: application.js
//= require highcharts/highcharts
//= require highcharts/highcharts-more
//= require highcharts/highstock
//= require bootstrap-wysihtml5
//= require bootstrap-wysihtml5/locales/de-DE
しかし、それは何も変わりませんでした。
2 回目の試行
これを修正するための 2 回目の試みは、dashboard.js ファイル内に lazy_high_charts JavaScript ファイルを要求することでした。
アプリケーション.js
//= require bootstrap-wysihtml5
//= require bootstrap-wysihtml5/locales/de-DE
ダッシュボード.js
//= require highcharts/highcharts
//= require highcharts/highcharts-more
//= require highcharts/highstock
しかし、この試みの問題点は、すべてのアセットをプリコンパイルした後、javascript ファイルがこの 1 つの大きな javascript ファイルにコンパイルされ、wysiwyg エディターが再び停止することでした。
3 つ目のアイデアは次のとおりです 。ダッシュボード用に、ダッシュボード コントローラー用に独自のアセット フォルダーと独自のマニフェスト ファイルを作成できます。そのJavaScriptマニフェストでは、lazy_high_charts JavaScriptファイルを要求できます。dashboard/index.html.erb ビュー ファイルの一番下に、javascript マニフェストをロードできます。
<%= javascript_include_tag "dashboard" %>
そうすれば当面の問題は解決します。しかし、ハイ チャート グラフと wysiwyg テキスト ボックスを含むビューが必要になったときに、もう一度同じ問題に遭遇しました。
したがって、両方の宝石の競合を止め、同じビューで両方を使用できるようにするより良い解決策がないかどうかを尋ねます。