地理编码器 - 如何获取国家/地区名称?

时间:2014-02-15 07:58:22

标签: ruby-on-rails ruby geolocation rails-geocoder

我正在尝试使用Geocoder gem获取城市,国家和地区名称。 我就是这样做的:

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>):

为什么我无法获取地区名称?

由于

1 个答案:

答案 0 :(得分:2)

geo_data[0].data["region_name"]。访问Hash#[]中的值需要使用其密钥

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