2012-07-16 1 views
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의이다 : 뷰에서

나는 이것을 시도 나에게 도움이 덕분에

답변

2

@usergeo.first.city 또는 @usergeo[0].city 시도 케이스.

기본적으로 결과에 대해 Array [ "city"]를 호출하려고하기 때문에 오류가 발생하지만 배열에는 문자열이 아닌 정수가 있어야합니다. 이렇게하면 해시 인 객체를 참조하고 그 대신에 [ "city"]를 호출합니다. 내가 usergeo.city @하려고하면

+0

괜찮습니다. 많은 감사합니다! 또한 davidb! :-) – Jan

1

그것의 배열 없음 그 Geocoder::Result::Freegeoip tr Y @usergeo.city 대신이 클래스의 @usergeo["city"]

문서 :이의 @data 샘플을 참조 할로이 당신을 도와줍니다

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

희망 ...

+0

내가 얻을 : ** 정의되지 않은 메서드'도시를 '#는 <배열 : 0x007ff3cdf21c50> ** – Jan

+0

:-(exacly – davidb

+0

usergeo.inspect' @'의 출력을 게시하시기 바랍니다 'Salzburg', 'region_code'=> '05', 'region_name'=> 'Salzburg', 'metrocode'=> "[# Geocoder :: Result :: Freegeoip : 0x007ff2e0036008 @ 데이터 = {"도시 " > "", "zipcode"=> "", "경도"=> "13.0333", "위도"= "47.8", "country_code"=> "AT", "ip"=> "83.215.14.101" "country_name"=> "Austria"}, @ cache_hit = nil>] ' – Jan

관련 문제