我是我的索引索引控制器 @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]也不起作用
任何评论对我都非常有帮助 感谢
答案 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
希望这有助于你,......