我无法将数组变量传递给rails中的方法。我正在使用flickraw gem并希望将用户的NSID链接到他们的用户名,但是它会返回错误,
“'flickr.people.getInfo' - 未找到用户”
我将变量输出到cli并单独测试每个变量。可以看到每个NSID所以无法理解为什么我会收到错误。
这是我的代码
require "flickraw"
class PhotosController < ApplicationController
def index
@list = flickr.photos.getRecent(:per_page => '3')
@list.each do |info|
store = [info.owner]
for i in 0..store.length
person = flickr.people.getInfo(:user_id => store[i])
puts person.username
end
end
end
end
以下是Flickraw和Flickr-api文档的链接, Flickraw docs,flickr-api docs
任何帮助总是受到赞赏。
答案 0 :(得分:1)
问题在于:
for i in 0..store.length
此范围包含。你应该使用专属范围(注意三个点):
for i in 0...store.length
对于包含范围,似乎有length + 1
个迭代,对于最后一个,相应的数组没有索引,返回nil
,一切都失败。
另一个选择是使用包含范围到length - 1
:
for i in 0..store.length-1