循环时“未定义的方法'值'”

时间:2015-06-17 07:54:58

标签: ruby-on-rails ruby amazon-web-services

我正在尝试循环从AWS API返回的标记列表,但我得到“未定义的方法”值。如果需要,我可以提供更多信息。

这是我的简单循环:

@instances.each do |i| 
 t = 0 
   while i.tags.any? do 
     puts i.tags[t].value 
    t += 1 
   end 
end

1 个答案:

答案 0 :(得分:2)

只要i.tags.any?数组不为空,

true就会返回tags.compact。因此,您进入无限循环,迟早t变得大于tags.length。致电tags[tags.length]返回nil,并在value上调用nil会产生错误。

您可能想要的循环如下:

i.tags.each do |tag|
  puts tag.value
end