说,在红宝石中,我有一个数组:ruby_array = [1, 2, 3, 4, 5]
在我的JavaScript脚本中,我希望能够将每个元素从my ruby_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] %>);
}
我收到的错误消息是:
语法错误:预期的表达式,得到')'
注意:如果我将[i]留在
ruby_array[i]
中,则输出很好:我的红宝石数组的0.元素是:1,2,3,4,5
...
我的ruby数组的4个元素是:1,2,3,4,5
我也尝试过
.to_json.html_safe
获得相同的结果。那么,如何在JavaScript代码中从我的ruby数组中获取第i个元素呢? 最佳答案
这些都将逃脱js。
你可以试试:
var javascriptArray = <%= escape_javascript ruby_array.to_json %>
要么
var javascriptArray = <%= j ruby_array.to_json %>