如何通过索引访问体式集合中的项目

时间:2015-10-20 02:10:47

标签: ruby asana

我正在尝试更新将trello卡导入体式的代码,我不得不更新到最新的asana gem https://github.com/Asana/ruby-asana

现在,当我尝试按索引访问收藏品时,我收到此错误。

exportTrelloToAsana.rb:63:in `block in <main>': undefined method `[]' for #<Asana::Resources::Collection:0x007fbba1d0d810> (NoMethodError)
    from exportTrelloToAsana.rb:56:in `each'
    from exportTrelloToAsana.rb:56:in `<main>'

通过索引访问Asana :: Resources :: Collection的正确语法是什么?

client = Asana::Client.new do |c|
  c.authentication :access_token, PERSONAL_ACCESS_TOKEN
end

workspaces = client.workspaces.find_all
workspace = workspaces[0]

1 个答案:

答案 0 :(得分:0)

正如您在README.md中所提到的,图书馆将为包含多个元素和/或多个页面的API响应返回Asana::Resources::Collection

除其他外,该集合是Enumerable并将公开Enumerable API。

有几种方法可以遍历集合的元素或获取集合的特定元素:

workspaces = client.workspaces.find_all
workspaces.take(1)
#<Asana::Workspace id: 1234, name: "Moon Landing">

workspaces.first    
#<Asana::Workspace id: 1234, name: "Moon Landing">

workspaces.each
#<Enumerator:0x000001032df790>

还有一些examples,其中一个使用个人访问令牌iterate over the workspaces available