2012-07-16 49 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