无法访问 Rails 中的 Geocoder 数组的内容
Can't Access Contents of Geocoder Array in Rails
我正在使用地理编码器中的搜索功能,特别是用于 IP 地址的搜索功能:
Geocoder.search("204.57.220.1")
当我在控制台中键入命令并将结果存储为变量时,我可以查看内容:
[#<Geocoder::Result::Freegeoip:0x0000000241d848 @data={"ip"=>"204.57.220.1",
"country_code"=>"US", "country_name"=>"United States", "region_code"=>"WA",
"region_name"=>"Washington", "city"=>"Redmond", "zip_code"=>"98052",
"time_zone"=>"America/Los_Angeles", "latitude"=>47.674, "longitude"=>-122.122,
"metro_code"=>819}, @cache_hit=nil>]
但我不知道如何访问结果。我试过:
results.@data.zip_code、results[@data.zip_code]、results[@data.results] 以及几乎所有我能想到的其他组合。有什么想法吗?
由于Geocoder.search("204.57.220.1")
返回的是数组,所以必须先抓取数组的第一个元素,然后抓取data
.
这样做:
results = Geocoder.search("204.57.220.1")
data = results.first.data
这将为您提供 data
哈希,您可以从那里提取所需的数据:
puts data['zip_code']
puts data['ip']
. . .
. . .
注意这个returns一个数组。这意味着您需要执行以下操作:
results = Geocoder.search("204.57.220.1")
first_result = results.first
p first_result.data
p first_result.data['ip']
我正在使用地理编码器中的搜索功能,特别是用于 IP 地址的搜索功能:
Geocoder.search("204.57.220.1")
当我在控制台中键入命令并将结果存储为变量时,我可以查看内容:
[#<Geocoder::Result::Freegeoip:0x0000000241d848 @data={"ip"=>"204.57.220.1",
"country_code"=>"US", "country_name"=>"United States", "region_code"=>"WA",
"region_name"=>"Washington", "city"=>"Redmond", "zip_code"=>"98052",
"time_zone"=>"America/Los_Angeles", "latitude"=>47.674, "longitude"=>-122.122,
"metro_code"=>819}, @cache_hit=nil>]
但我不知道如何访问结果。我试过:
results.@data.zip_code、results[@data.zip_code]、results[@data.results] 以及几乎所有我能想到的其他组合。有什么想法吗?
由于Geocoder.search("204.57.220.1")
返回的是数组,所以必须先抓取数组的第一个元素,然后抓取data
.
这样做:
results = Geocoder.search("204.57.220.1")
data = results.first.data
这将为您提供 data
哈希,您可以从那里提取所需的数据:
puts data['zip_code']
puts data['ip']
. . .
. . .
注意这个returns一个数组。这意味着您需要执行以下操作:
results = Geocoder.search("204.57.220.1")
first_result = results.first
p first_result.data
p first_result.data['ip']