1

目前我使用兩個提供javascript資源的寶石。這兩個資產相互衝突。rails javascript資產衝突

在我的情況下,它是lazy_high_charts寶石和bootstrap-wysihtml5-rails寶石。

我在我目前的項目中都有。首先,我只有一些文本框的bootstrap-wysihtml5-rails gem。昨天我將lazy_high_charts gem加入了我的儀表板項目中。

我在我的應用程序的多個地方有wysiwyg文本框。對於儀表板,我使用索引操作創建了一個新的控制器儀表板。

當我在我的application.js清單文件中添加了lazy_high_charts_gem並且需要javascript文件之後,整個項目中我的文本框中的所有wysiwyg編輯器都消失了。只要我從我的application.js文件中刪除了lazy_high_charts javascript要求,wysiwyg編輯就回來了。

首次嘗試 我的第一個解決這個問題的嘗試是改變我從JavaScript要求的順序:

的application.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 

但這並沒有改變。

第二次嘗試

我的第二次嘗試解決該問題,要求javascript文件的dashboard.js文件中的lazy_high_charts。

的application.js

//= require bootstrap-wysihtml5 
//= require bootstrap-wysihtml5/locales/de-DE 

dashboard.js

//= require highcharts/highcharts               
//= require highcharts/highcharts-more               
//= require highcharts/highstock 

但這個嘗試的問題是預編譯的全部資產後的JavaScript文件被編譯成這一大javascript文件和我的wysiwyg編輯再次停止。

我的第三個想法是: 對於我的儀表板,我可以創造一個自己的資產,文件夾和我的儀表盤控制器的自己的清單文件。在它的JavaScript清單中,我可能需要lazy_high_charts JavaScript文件。在我的儀表板/ index.html.erb視圖文件的底部,我可以加載JavaScript清單

<%= javascript_include_tag "dashboard" %> 

這將解決此刻的問題。但是當我需要一個高圖表和一個wysiwyg文本框時,我又碰到了同樣的問題。

因此,我問我是否沒有更好的解決方案來阻止這兩個寶石的衝突,並允許我在相同的視圖中使用兩者。

+0

嘗試更清楚一點。看起來你很快就寫了這個,然後漫不經心地說。當人們很難遵循你的「問題」時,人們很難幫助你。 – Ecnalyr

+0

對不起,我不夠清楚。我改變了我的問題,希望現在更清楚。我的英語不是最好的,我認爲這是更多的問題。現在清楚了嗎? – coderuby

回答

0

我用的是全highcharts gemfoundation這是非常相似的引導,我還沒有發現任何兼容性問題...

也許不是你要找的答案,但也許一個不錯的選擇!