3
我得到了下面的Ruby對象返回一個值(從查詢使用garb gem的谷歌Analytics(分析)API,來自於README.md有顯示的示例通話,Exits.results(profile, :filters => {:page_path.eql => '/'})
)提取從OpenStruct Ruby對象
> data.results
=> [#<OpenStruct page_path="/", exits="3706", pageviews="10440">]
我想提取瀏覽量值(10440),但無法弄清楚如何去做。我看到我的對象,data.results
是長度1
的array
類,但data.first是OpenStruct
類帶有返回值,看起來幾乎相同:
irb(main):140:0> data.results.class
=> Array
irb(main):141:0> data.results.length
=> 1
irb(main):142:0> data.first
=> #<OpenStruct page_path="/", exits="3706", pageviews="10440">
irb(main):143:0> data.first.class
=> OpenStruct
而data
本身似乎是一個被稱爲ResultsSet
自定義的返回類型:
irb(main):144:0> data.class
=> Garb::ResultSet
irb(main):145:0> data
=> #<Garb::ResultSet:0x00000002411070 @results=[#<OpenStruct page_path="/", exits="3706", pageviews="10440">], @total_results=1, @sampled=false>
irb(main):146:0>
很多數據結構,但不知道如何得到我想要的值。我收集OpenStruct
是有關哈希,所以我想data.first["pageviews"]
會做到這一點,
NoMethodError: undefined method `[]' for #<OpenStruct page_path="/", exits="3706", pageviews="10440">
from (irb):146
from /usr/bin/irb:12:in `<main>'
同時data.first.keys
回報nil
。 。?不知道如何讓我的數據出來,(短長度-1磁盤陣列,data.results
轉換爲字符串,並使用grep,這似乎瘋狂解析的任何想法
是的,工作!非常感謝。不知道我完全理解邏輯,但非常有幫助! – cynewulf
這是一個功能,改變了紅寶石1.9什麼? – chicks
它不應該... – Yossi