首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails中迭代这个结构的最好方法是什么?

在Rails中迭代这个结构的最好方法是什么?
EN

Stack Overflow用户
提问于 2014-10-31 08:07:34
回答 2查看 142关注 0票数 0

我对rails很陌生,很难弄清楚如何迭代这些数据。这是集成etsy的gem的输出。看上去像是一组哈希,也许?

代码语言:javascript
复制
output=[#<Etsy::Listing:0x5551ba8 @result={"listing_id"=>182661496, "title"=>"Edible Butterflies in Coral", "quantity"=>1, "price"=>"12.50", "ending_tsz"=>1405362199, "shipping_template_id"=>nil, "MainImage"=>{"url_75x75"=>"https://img1.etsystatic.com/036/0/8545731/il_75x75.576542775_ibud.jpg"}}, @token="token", @secret="secret">, 
#<Etsy::Listing:0x5551bc0 @result={"listing_id"=>182671909, "title"=>"Marshmallow Sampler Pack", "quantity"=>3, "price"=>"9.50", "ending_tsz"=>1405362468, "shipping_template_id"=>1680751676, "MainImage"=>{"url_75x75"=>"https://img1.etsystatic.com/021/0/8545731/il_75x75.576544537_n2zo.jpg"}}, @token="token", @secret="secret">, 
#<Etsy::Listing:0x5551bf0 @result={"listing_id"=>182663346, "title"=>"Gourmet popcorn and seasoning kit", "quantity"=>15, "price"=>"26.95", "ending_tsz"=>1405363087, "shipping_template_id"=>nil, "MainImage"=>{"url_75x75"=>"https://img0.etsystatic.com/026/0/8545731/il_75x75.576428850_r1mv.jpg"}}, @token="token", @secret">, 
#<Etsy::Listing:0x5551c08 @result={"listing_id"=>189414412, "title"=>"Sailor Tote Bag", "quantity"=>45, "price"=>"50.00", "ending_tsz"=>1410586221, "shipping_template_id"=>1024284528, "MainImage"=>{"url_75x75"=>"https://img0.etsystatic.com/039/0/8545731/il_75x75.576443100_slse.jpg"}}, @token="token", @secret="secret">]

我试过的东西似乎都不起作用。将其作为数组处理对于某些事情是有效的,比如: output.length正确地返回4,但是输出返回没有任何其他数据的。我真正需要的是包含在@result={}中的内容。想法?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-31 08:21:43

看来你错过了这个在医生里的阅读

代码语言:javascript
复制
listings = output.map do |listing| 
  { 
    "title"    => listing.title, 
    "quantity" => listing.quantity, 
    "price"    => listing.price
  }
end
票数 0
EN

Stack Overflow用户

发布于 2014-10-31 08:16:25

你写道:

看上去像是一组哈希,也许?

是一个对象数组,每个对象都是一个Etsy::Listing实例。您应该能够在Rails控制台上这样做:

代码语言:javascript
复制
> listing = output.first
#=> <Etsy::Listing:0x5483418>
> listing.result
#=> {"listing_id"=>182661496, …}

如果您想对每个清单执行一些操作,可以这样做:

代码语言:javascript
复制
> output.each {|listing| puts listing.result.title }
Edible Butterflies in Coral
Marshmallow Sampler Pack
Gourmet popcorn and seasoning kit
Sailor Tote Bag
> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26669981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档