1

我的索引控制器我有@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] 也不起作用

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

4

2 回答 2

2

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

您收到该错误的原因是因为您基本上是在尝试对结果调用 Array["city"] ,但数组显然需要一个整数,而不是字符串。通过这种方式,您可以引用该对象,它是一个散列,并在其上调用 ["city"]。

于 2012-07-16T13:45:35.957 回答
1

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

此类的文档:

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

希望这对你有帮助,...

于 2012-07-16T12:21:25.537 回答