0

J'ai une application Ruby on Rails avec gem geocoder installé. J'essaie de géocoder en masse toutes les lignes (environ 2500) dans ma base de données avec rake geocode: all. Quand je cours la commande rien ne s'est passé. Aucune des lignes n'a été géocodée. Est-ce que j'ai râté quelque chose?Géocoder gem 'rake géocode: tous CLASS = Modèle' ne fonctionne pas

Model.rb

geocoded_by :fulladdress 
after_validation :geocode 

def fulladdress           
    [address, city, state, zip].compact.join(",") 
end 
+0

vous utilisez l'enregistrement actif ou la mongoïde? –

+0

latitude, le champ de longitude est là en db droite? –

+0

uniquement si vous utilisez l'enregistrement actif –

Répondre

2

juste essayer de courir en dehors de la tâche Rake manuellement (par exemple rails console ou rails runner):

Model.find_each {|m| m.save! } 

Si vous le faites dans le développement ont un rapide coup d'oeil sur les instructions SQL sorties, s'il y a des lignes avec "UPDATE modèles SET lat = ?, lon =? ..."

+0

'rake geocode: toute la commande CLASS = Model' ne sort rien ... et que puis-je vérifier avec 'Model.find_each {| m | m.save! } '..je ne t'ai pas eu exactement. –

+0

Cela va exécuter la validation + la sauvegarde pour tous vos modèles. Votre code a l'air bien, la sauvegarde va également exécuter votre géocodage. Toute erreur devrait être soulevée par le "save!". Si vous utilisez Google en tant que backend de géocodage, veillez également à inclure un sleep 1, sinon vous serez limité. – stwienert