2012-07-16 59 views
1

林我的索引的索引器我有 @usergeo = Geocoder.search( “83.215.14.101”)Rails的地理编码器说, “不能把字符串转换为整数”

结果是:

Geocoder::Result::Freegeoip:0x007ff3ced35eb8 @data={ 
"city"=>"Salzburg", 
"region_code"=>"05", 
"region_name"=>"Salzburg", 
"metrocode"=>"", 
"zipcode"=>"", 
"longitude"=>"13.0333", 
"latitude"=>"47.8", 
"country_code"=>"AT", 
"ip"=>"83.215.14.101", 
"country_name"=>"Austria"}, 

@cache_hit=nil>] 

.class意味着它是一个数组!

在视图我试试这个:

<%= @usergeo["city"] %> 

,其结果是

can't convert String into Integer 

也是一个@usergeo [:城市]不起作用

任何评论都会很对我有帮助 谢谢

回答

2

尝试@usergeo.first.city@usergeo[0].city如要引用在此@data样本案件。

你得到这个错误的原因是你基本上试图在结果上调用Array [“city”],但是一个数组显然需要一个整数,而不是一个字符串。这样你可以引用这个哈希对象,然后调用[“city”]。

+0

好的,有道理!非常感谢!也为davidb! :-) – Jan 2012-07-16 13:59:28

1

它的无阵它的a Geocoder::Result::Freegeoip tr Ÿ@usergeo.city代替@usergeo["city"]

文档该类:

http://rubydoc.info/github/alexreisner/geocoder/master/Geocoder/Result/Freegeoip

希望这可以帮助你,...

+0

当我尝试@ usergeo.city我得到: **未定义的方法'城市”为#<阵列:0x007ff3cdf21c50> ** :-( – Jan 2012-07-16 12:32:30

+0

请张贴的'@输出usergeo.inspect' – davidb 2012-07-16 13:03:33

+0

exacly this:'[#“Salzburg”,“region_code”=>“05”,“region_name”=>“Salzburg”,“metrocode”= >“”,“zipcode”=>“”,“经度”=>“13.0333”,“纬度”=>“47.8”,“country_code”=>“AT”,“ip”=>“83.215.14.101” “country_name”=>“Austria”},@ cache_hit = nil>]' – Jan 2012-07-16 13:48:48