Ruby - 将数组变量传递给方法

Ruby - Passing array variable to method

我在将数组变量传递给 rails 中的方法时遇到问题。我正在使用 flickraw gem 并想 link 用户的 NSID 到他们的用户名,但返回错误

"'flickr.people.getInfo' - User not found"

我已经将变量输出到 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 文档的 links, Flickraw docs, flickr-api docs

我们将不胜感激任何帮助。

问题出在这里:

for i in 0..store.length

此范围包含。您应该使用独占范围(注意三个点):

for i in 0...store.length

对于包含范围,似乎有 length + 1 次迭代,对于最后一次,相应的数组没有索引,returns nil 并且一切都失败了。


另一种选择是使用包含范围直到 length - 1:

for i in 0..store.length-1