Ruby Geocoder – 如何遍历此结果

我刚刚安装了Ruby Geocoder ,我正试图遍历Geocoder::Result ,但是我一直在努力。 我在rails控制台中,并使用了以下内容:

s = Geocoder.search("90210")

返回以下内容:

[#[{"long_name"=>"90210", "short_name"=>"90210", "types"=>["postal_code"]}, {"long_name"=>"Beverly Hills", "short_name"=>"Beverly Hills", "types"=>["locality", "political"]}, {"long_name"=>"Los Angeles", "short_name"=>"Los Angeles", "types"=>["administrative_area_level_2", "political"]}, {"long_name"=>"California", "short_name"=>"CA", "types"=>["administrative_area_level_1", "political"]}, {"long_name"=>"United States", "short_name"=>"US", "types"=>["country", "political"]}], "formatted_address"=>"Beverly Hills, CA 90210, USA", "geometry"=>{"bounds"=>{"northeast"=>{"lat"=>34.1354771, "lng"=>-118.3867129}, "southwest"=>{"lat"=>34.065094, "lng"=>-118.4423781}}, "location"=>{"lat"=>34.1030032, "lng"=>-118.4104684}, "location_type"=>"APPROXIMATE", "viewport"=>{"northeast"=>{"lat"=>34.1354771, "lng"=>-118.3867129}, "southwest"=>{"lat"=>34.065094, "lng"=>-118.4423781}}}, "types"=>["postal_code"]}, @cache_hit=nil>]

如何访问结果的特定部分? 我尝试过以下方法:

s.result.cityresult.citys.data ?? 但这些都不起作用。 任何想法都会很棒。

谢谢!

我想到了。 文档说“Geocoder.search返回一个Geocoder :: Result对象的数组”

因此,我需要这个:

s[0].city <= Beverly Hills OR s.first.city (感谢@fotanus)

根据文档 ,它是一个结构,因此您应该将值作为索引符号访问,如下所示:

 result[:city] 

该链接具有可从此对象访问的内容。

使用“Geocoder.search”时,您需要解析几个图层才能到达城市。 以下将返回“比佛利山庄”。

 s.first.data["address_components"][1]["short_name"] 

如果要使用其他答案中的语法,则需要创建一个新的地理编码器实例,而不是使用Geocoder .search