簡體   English   中英

Ruby和OpenStruct僅允許訪問某些數據

[英]Ruby and OpenStruct allowing access to only some data

我有一個OpenStruct數據結構數組。 但是當我嘗試訪問它們時,我只能訪問country

array = [
 #<OpenStruct country="United States", visits="202", visitBounceRate="59.900990099009896", avgTimeOnSite="151.85148514851485", newVisits="176", percentNewVisits="87.12871287128714", pageviewsPerVisit="2.9207920792079207">, 
 #<OpenStruct country="Germany", visits="155", visitBounceRate="43.87096774193549", avgTimeOnSite="167.43870967741935", newVisits="104", percentNewVisits="67.0967741935484", pageviewsPerVisit="3.935483870967742">, 
 #<OpenStruct country="Brazil", visits="105", visitBounceRate="44.761904761904766", avgTimeOnSite="227.2095238095238", newVisits="77", percentNewVisits="73.33333333333333", pageviewsPerVisit="3.5142857142857142">, 
 #<OpenStruct country="United Kingdom", visits="71", visitBounceRate="46.478873239436616", avgTimeOnSite="216.91549295774647", newVisits="36", percentNewVisits="50.70422535211267", pageviewsPerVisit="3.464788732394366">
]

例如

array.each do |openstruct|
  put openstruct.country
end

返回所有國家,但如果我這樣做

array.each do |openstruct|
  put openstruct.newVisits
end

返回許多空白行。

這種情況沒什么特別的。 它必須是您應用程序中的較早版本:

irb(main):002:0> require 'ostruct'
=> true
irb(main):003:0> OpenStruct.new
=> #<OpenStruct>
irb(main):004:0> os = _
=> #<OpenStruct>
irb(main):005:0> os.country = :russia
=> :russia
irb(main):006:0> os.newVisits = 60
=> 60
irb(main):007:0> os.country
=> :russia
irb(main):008:0> os.newVisits
=> 60

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM