我觉得这应该很简单......
我进行了一个AJAX调用,在那里我将一个字符串数组(在我的控制器中的回调函数中定义)发送到.js.erb文件:
在我的rails控制器中:
@array = ["render partial a", "render partial b", "render partial c"]
render :action => "show_options"
在我的show_options.js.erb文件中,我想对@array中的每个字符串进行一次escape_javascript调用,例如。
var show_1 = '<%= escape_javascript( @array[0] ) %>'
var show_2 = '<%= escape_javascript( @array[1] ) %>'
var show_3 = '<%= escape_javascript( @array[2] ) %>'
问题是数组元素的数量是可变的。 我如何设置某种循环以确保我可以处理任意数量的数组元素?
我正在尝试这些方面的内容,但我无法弄清楚如何将索引号(i)插入到ruby表达式中。
for (i = 0; i < @array_lenth; i++) {
var show =+ '<%= escape_javascript( @array[i] ) %>'
}
我不确定该怎么做..
答案 0 :(得分:2)
因为它是.js.erb
文件,所以你可以插入Ruby风格的循环:
<% @array.each_with_index do |partial, index| %>
var show_<%= index + 1 %> = '<%= escape_javascript(partial) %>'
<% end %>