2014-02-15 100 views
0

我正试图使用​​Geocoder宝石获取城市,国家和地区名称。 这是我正在做它:地理编码器 - 如何获取国家/地区名称?

geo_data = Geocoder.search('50.131.44.XXX') 
puts geo_data.inspect 
puts geo_data[0].city 
#puts geo_data[0].inspect 
puts geo_data[0].country_code 
puts geo_data[0].region_name 

和输出:

[#<Geocoder::Result::Freegeoip:0x007fd6db981b38 @data={"ip"=>"50.131.44.XXX", "country_code"=>"US", "country_name"=>"United States", "region_code"=>"CA", "region_name"=>"California", "city"=>"Sunnyvale", "zipcode"=>"94087", "latitude"=>XXX, "longitude"=>-XXX, "metro_code"=>"807", "areacode"=>"408"}, @cache_hit=nil>] 
Sunnyvale 
US 
NoMethodError (undefined method `region_name' for #<Geocoder::Result::Freegeoip:0x007fd6db981b38>): 

为什么我不能让该地区的名字吗?

由于

回答

2

geo_data[0].data["region_name"]Hash#[] .Accessing的值要求使用其密钥

Geocoder.search()方法返回array与对象data。在数据中你有简单的hash的值。

+0

你救了我的一天,谢谢你的男人! – user984621

+0

(undefined method'[]'for#

+0

@AHK show code。 –

相关问题