在js文件中传递ruby数组

时间:2013-04-29 21:02:43

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我有一个从我的控制器中的查询获得的数组

@users

我可以在我的视图中显示结果,但我需要将其传递给“.js”文件。

我发现我需要使用json,所以我在“.js”

上写了这个
var dataset = {
  ex1: [<%= raw @users.to_json %>],
  ex2: [100, 200, 200, 200, 200, 200, 200, 200, 200, 200]
};

但它不起作用。通常我的视图在加载时处理静态数据,现在我需要动态地改变它们。

我还添加了

//= require json

但没有运气。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您的文件必须命名为: myfile.js.erb

这意味着您的文件内容将首先针对javascript代码的ruby代码进行评估。 这就是您的观点被命名为myview.html.erb或myview.html.haml等的原因... javascript和css资产的方式相同:它们的名称以 .js.coffee .css.scss 结尾,以便对它们进行CoffeScript或SCSS评估,然后使用Javascript或CSS。

答案 1 :(得分:1)

您的javascript文件最后必须有一个erb扩展名:file.js.erb,以便您能够插入ruby代码。