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

时间:2016-09-22 04:28:26

标签: ruby-on-rails ruby flickr

我无法将数组变量传递给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 docsflickr-api docs

任何帮助总是受到赞赏。

1 个答案:

答案 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