说,在红宝石中,我有一个数组: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 %>

10-07 11:58