0
我已經從CSV文件導入了一堆位置,現在我需要讓它們進行地理編碼。當我手動創建新記錄時,我會在驗證後運行:geocode
。我希望能夠立即在所有記錄上運行它。使用軌道控制檯中的方法更新所有記錄
我已經看過update_all
,但一直未能得到它的工作。有沒有辦法做到這一點?
這裏是我的模型:
class Location < ActiveRecord::Base
include Rails.application.routes.url_helpers
default_scope order('locations.name ASC')
acts_as_gmappable
attr_accessible :name,
:address,
:city,
:province,
:postal_code,
:country,
:phone,
:ext,
:phone_alt,
:ext_alt,
:url,
:latitude,
:longitude
geocoded_by :address
validates_presence_of :name
validates_presence_of :address
validates_presence_of :city
validates_presence_of :province
validates_presence_of :postal_code
validates_presence_of :country
after_validation :geocode
def gmaps4rails_address
"#{self.address} #{self.city} #{self.province} #{self.postal_code} #{self.country}"
end
end
這是一種工作,但我覺得,因爲它是在一個循環的API被踢了很多人的迴應。有沒有辦法在每個之間添加延遲? –
你是什麼意思,踢他們回來?如果您只想減慢循環,則可以在每次地理編碼請求後添加一次睡眠(5次)。如果邏輯涉及更多 - 如果在發生故障時需要進行某種跟進,我會建議將其重構爲自定義rake任務:http://railscasts.com/episodes/66-custom-耙 - 任務 – pseudopeach
是的,正是我所需要的,再次感謝! –