【发布时间】:2017-05-20 01:28:01
【问题描述】:
说,在 ruby 中我有一个数组:ruby_array = [1, 2, 3, 4, 5]
在我的 javascript 脚本中,我希望能够将每个元素从 myruby_array 推送到 javascriptArray:
var javascriptArray = [];
for (i = 0; i < <%= raw ruby_array.size %>; i++) {
alert("The " + i + ". element of my ruby array is: " + <%= raw ruby_array[i] %>);
// Problem: I guess, I cannot get the i javascript variable when calling ruby_array[i]
// How do I unescape the i?
// Now push every ruby_array element into my javascriptArray
// Same problem like above
javascriptArray[i] = Number(<%= raw ruby_array[i] %>);
}
我得到的错误信息是:
SyntaxError: 预期的表达式,得到 ')'
注意:如果我将 ruby_array[i] 中的 [i] 留在外面,则输出正常:
我的 ruby 数组的 0. 元素是:1,2,3,4,5
...
我的 ruby 数组的 4. 元素是:1,2,3,4,5
我也尝试过.to_json.html_safe,结果相同。那么如何在 javascript 代码中从我的 ruby 数组中获取第 i 个元素呢?
【问题讨论】:
-
你的javascript变量
i在<%= raw ruby_array[i] %>中是未知的 -
啊...如您的 cmets 所述
-
是的,我想这就是问题所在。那么我怎样才能取消 i 并告诉 ruby 我的 javascript 循环中的 i 意味着:)?
-
您不能以这种方式互操作 javascript 和 ruby,您需要将 ruby 数据转换为纯 javascript 数组,然后通过:
jsArray[i];访问它。 -
@praszyk:哦,很高兴知道。一个问题:当我将我的 ruby 数组转换为 javascript 数组时,我的 javascript 数组中的元素也是数字吗?还是我也必须将它们转换成数字?
标签: javascript jquery ruby-on-rails arrays ruby