0

我在 Rails 控制器中定义了一个数组:

str_array = ["Hi","hello"]

我需要在存储在 assets 下的 javascript 文件中访问这个数组。我在我的 js 中定义了一个可变类型的数组数组。我尝试像这样访问但失败了:

var js_arr = [<%= raw @str_array.to_json %>];

有没有其他方法可以访问我的 javascript 中的 rails 数组?

4

3 回答 3

0

您是否为该 JavaScript 文件添加了 .erb 扩展名?

于 2013-02-25T19:50:50.937 回答
0

有两种方法。

1) 必要时通过 ajax 将其传递给 javascript。(例如,在按钮单击等上)。

2) 将内联 javascript 放入要访问的视图模板(erb、haml 或 w/e)之一,然后在方法调用中使用 #{rails_array}.to_json 传递 rails 数组。

第一个更干净,更可测试,并且从长远来看更易于维护。第二个更容易实现。

于 2013-02-25T19:51:00.000 回答
0

将东西从 RoR 传递到 JS 的一种非常干净的方法是gon gem

没有带有 erb 或类似东西的讨厌的打印变量。

您会得到一个名为的对象gon,您可以将数据堆积到您的 RoR 控制器中。添加include_gon到您的布局中,瞧—— gon 对象在 JS 中也可用。

于 2013-02-25T19:53:24.957 回答