我有大量没有纬度或经度的用户。添加 gem 后,我想通过执行以下操作预处理纬度和经度字段:
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
但没有运气。我无法捕捉到异常并进入循环中的下一个。谢谢