1
gem google maps for railsを使用していますが、新しいレコードを作成した後にdelayed_jobを使用してコードを取得する方法がわかりません。gmaps4railsでジオコードを取得するときに遅延ジョブを使用する
は、誰もが
ホープ誰かが助言することができdelayed_jobを使用して前にこの宝石渡って来ています。
gem google maps for railsを使用していますが、新しいレコードを作成した後にdelayed_jobを使用してコードを取得する方法がわかりません。gmaps4railsでジオコードを取得するときに遅延ジョブを使用する
は、誰もが
ホープ誰かが助言することができdelayed_jobを使用して前にこの宝石渡って来ています。
申し訳ありませんが、遅れている仕事についてどれだけ知っているのか分かりませんので、そこから始めます。
遅延ジョブは '#perform'に応答するすべてのクラスを利用できます。そのため、まず座標を取得してモデルに格納するクラスが必要です。
class GoogleMapsCoordinateService
def perform(record)
coords = Gmaps4rails.geocode(record.address) #This is the method that will actually return a hash of coordinates for each match it finds.
record.update_attributes(:lattitude => coords[0][:lat], :longitude => coords[0][:lng])
end
end
次に、あなただけの各レコードが作成された後だから方法は、あなたが座標のグラビングをキューます
class INSERTYOURMODELNAMEHERE < ActiveRecord::Base
after_create :get_coordinates
def get_coordinates
Delayed::Job.enqueue GoogleMapsCoordinateService.new(self)
end
end
モデルでafter_createフックでそのジョブをキューに入れる必要がありますバックグラウンドであなたの応答時間を素早く保ちます。
あなたを助けてくれてうれしいです。 – TheDelChop
Yeaありがとうございました – Lee
私はこの変数を構造体に入れてこの作業を行う必要がありました: 'class GoogleMapsCoordinateService
map7