Rails Geocoder说“无法将字符串转换为整数”

时间:2012-07-16 12:00:44

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

我是我的索引索引控制器    @usergeo = Geocoder.search(“83.215.14.101”)

结果是:

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 [:city]也不起作用

任何评论对我都非常有帮助 感谢

2 个答案:

答案 0 :(得分:2)

在这种情况下,请尝试@usergeo.first.city@usergeo[0].city,以便引用@data示例。

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

答案 1 :(得分:1)

它没有数组Geocoder::Result::Freegeoip尝试@usergeo.city而不是@usergeo["city"]

本课程的文档:

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

希望这有助于你,......