我应该在哪里使用jQuery将我的页面相关的javascript代码放在Rails 3.2中?

时间:2016-03-24 13:27:35

标签: javascript jquery ruby-on-rails

我正在使用JQuery和Highcharts。

这是我的app / assets / javascripts /文件夹的内容:

application.js
graphique_repartition_budgetaire.js.erb
proj_charge.js.erb

这是我的app / assets / javascripts / application.js文件

// This is a manifest file ... bla bla bla ...
//
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require highcharts

这是我的app / assets / javascripts / graphique_repartition_budgetaire.js.erb文件

$(function () {
    Highcharts.setOptions({
        lang: {
            thousandsSep: "'"
        }
    });
    $('#graphique-repartition-budgetaire').highcharts({
      // my graphic code is here....
    });
});

直到它工作正常。 当我尝试为其他特定页面编写其他javascript / JQuery代码时,问题就出现了。我把这个新代码放到app / assets / javascripts / proj_charge.js.erb文件中:

$(function () {
  alert('JQuery is ready !');
});

此文件无法执行,也似乎无法加载。 为什么? 我应该将所有jQuery代码放入同一个文件中吗? 我是Javascript和JQuery的初学者,所以我不知道是否禁止两次声明相同的$(function () {});

我做错了什么?

===编辑===

我在applicationjs文件末尾包含了代码:

// This is a manifest file ... bla bla bla ...
//
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require highchart
$(function () {
  alert('JQuery is ready !');
});

然后我停止了我的Web服务器,编译资产,并重新启动了Web服务器:

/etc/init.d/apache2 stop
rake assets:precompile
/etc/init.d/apache2 start

没有任何反应,代码仍然没有出现在萤火虫的源页面中。

1 个答案:

答案 0 :(得分:0)

我终于解决了这个问题。

问题来自我使用Highcharts和资产管道的开发环境。 事实上,我对Highchart的javascript图形调用存在于app / assets / javascripts / graphique_repartition_budgetaire.js.erb中,并且也存在于我的预编译资产中(由我的rake assets:precompile命令构建)。

这导致Select2 examples page

此错误导致我的proj_charge.js.erb中的javascript代码无法执行。 这就是它没有显示警报信息的原因。

我在以下文章中解释了在开发模式中解决此资产预编译问题的解决方案: error in Highchart library