使用javascript混合ruby时我会使用哪组引号?

时间:2013-05-13 20:25:53

标签: javascript ruby

我无法弄清楚哪组引号适合于下面的图片加载。 #icon + i部分可以正常工作,因为我放入了一个样本图像来追加并引用了正确的div。但是我无法弄清楚如何在src中加载​​适当的图像。

$(document).ready(function(){
  alert('test');
  <% if @iosapps %>
  for (var i =0; i < <%= @iosapps.length %>; i++) {
    $('#icon' + i).append('<img src = "<%= @iosapps['+i+'].app_store_icon %>">');
  }
  <% end %>
});

我目前得到的错误是:无法将String转换为Integer

1 个答案:

答案 0 :(得分:0)

你应该循环使用ruby,而不是javascript。你不能自由地混合这两个。一个在服务器上执行,另一个在客户端的浏览器中执行。了解哪个做了什么很重要。

此代码段应该做您想要的(或多或少)。

$(document).ready(function(){
  alert('test');
  <% if @iosapps %>
    <% @iosapps.each_with_index do |ia, idx| %>
      $('#icon<%= idx %>').append('<img src="<%= ia %>.app_store_icon ">');
    <% end %>
  <% end %>
});

哦,你得到的错误:

@iosapps['+i+']

传递字符串"+i+"作为数组的索引。 Array不知道如何使用它,因此会引发错误。