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这是非常相似的引导,我还没有发现任何兼容性问题...

也许不是你要找的答案,但也许一个不错的选择!