0

我正在构建一个减肥应用程序来跟踪用户的体重以及他们每天摄入的卡路里量。我正在使用 Highcharts 来显示这些信息,每个图表都保存在卡路里.js 或 weights.js 中。卡路里图表显示正常,但我在显示体重图表时遇到了问题。仅当我还在同一页面上显示卡路里图表时才会显示。

我所做的唯一更改是在视图中添加卡路里图表的 div 代码 - 不更改模型、控制器或 javascript。不知何故,修复了体重图表。

如果我将 weights.js 按字母顺序重命名为calories.js 之前的名称 - aweights.js - 那么问题就反过来了,如果没有权重图表,我就无法显示卡路里图表。根据 Rails 控制台,Calories.js 和 weights.js 总是加载。

这里发生了什么?

编辑:Backbone.js - Coffeescript 扩展说 ROR 确实按字母顺序导入资产,所以这不是太疯狂。

4

2 回答 2

0

感谢所有的评论,它帮助我找到了我需要去的方向。我没有加载导致问题的所有资产,而是只加载了页面上我需要的资产。我在标头中使用了 yield来仅加载该特定的 .js 文件。我还需要更改 \app\assets\javascript\application.js 文件以不自动包含整个目录。

于 2013-11-04T16:11:05.037 回答
0

您使用的是 Rails 3.1 或更高版本吗?

如果是这样,你应该看看你的 app/assets/application.js

//= require jquery
//= require jquery_ujs 
//= require_tree .

如果您需要特定的加载顺序,您可以像下面这样设置它:

//= require jquery
//= require jquery_ujs 
//= weight
//= calories
//= require_tree .

否则,rails 将需要目录中按字母顺序排列的文件。

看看指南: http: //guides.rubyonrails.org/asset_pipeline.html

于 2013-10-24T20:36:51.980 回答