2013-07-05 4 views
0

위도 또는 경도가없는 기존 사용자 수가 있습니다. 보석을 추가 한 후, 나는이 수행하여 전처리 위도와 경도 필드 원 : 내 주소가 잘못된 경우 때때로gmaps4rails의 lat/long 전처리시 오류가 발생했습니다.

User.all.each do |user| 
    geo_data = Gmaps4rails.geocode(user.gmaps4rails_address) 
    user.update_attributes(latitude: geo_data[0][:lat], longitude: geo_data[0][:lng]) 
    sleep(1) 
end 

을하지만 그렇게 할 때, 나는 메시지를 다음과 같이 얻을 :

The address you passed seems invalid, status was: ZERO_RESULTS. 
Request was: http://maps.googleapis.com/maps/api/geocode/json?language=en&address=asdasdsa, mountain, US&sensor=false 

이것은 내 레이크가 깨지는 것을 막아줍니다. 그래서 위와 같은 오류를 반환하는 사람들을 위해 정확하고 무시하는 (위도/경도를 설정하지 않는) 주소에 대해 위도와 경도를 어떻게 설정하면 될까요?

편집 :

나는이 일을 시도 :

User.all.each do |user| 
     begin 
     geo_data = Gmaps4rails.geocode(user.gmaps4rails_address) 
     rescue 
     next 
     end 
     user.update_attributes(latitude: geo_data[0][:lat], longitude: geo_data[0][:lng]) 
     sleep(1) 
    end 

하지만 행운을. 나는 예외를 잡아서 루프에서 다음으로 갈 수 없다. 감사

+0

당신은 "나는 예외를 잡을 수 없어"무엇을 의미합니까? –

답변

0

시도 :

User.find_each do |user| 
    begin 
    geo_data = Gmaps4rails.geocode(user.gmaps4rails_address) 
    user.update_attributes(latitude: geo_data[0][:lat], longitude: geo_data[0][:lng]) 
    sleep(1) 
    rescue 
    #just prevent loop from crash 
    end 
end