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
我在将数组变量传递给 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