使用AJAX显示多个部分

时间:2014-10-13 04:00:41

标签: javascript ruby-on-rails arrays escaping

我觉得这应该很简单......

我进行了一个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] ) %>'
}

我不确定该怎么做..

1 个答案:

答案 0 :(得分:2)

因为它是.js.erb文件,所以你可以插入Ruby风格的循环:

<% @array.each_with_index do |partial, index| %>
    var show_<%= index + 1 %> = '<%= escape_javascript(partial) %>'
<% end %>