2011-03-09 2 views
3

J'essaie d'utiliser la gemme geokit-rails3 pour des informations de géolocalisation dans une application de rails. J'ai un modèle simple:Utilisation de Rails 3 avec la gemme d'emplacement Geokit-rails3

class Location < ActiveRecord::Base 
    def lookup_ip_information(post_ip) 
    ip = post_ip 
    location = IpGeocoder.geocode(ip) 
    puts location.full_address 
    lat = location.lat 
    lng = location.lng 
    end 
end 

Quand j'appelle cette méthode avec request.remote_ip de mon contrôleur, il est lancer une erreur: uninitialized constant Location::IpGeocoder

Répondre

6

Je viens d'avoir ce problème et résolu en entrant la pleine

Geokit::Geocoders::IpGeocoder.geocode(request.remote_ip) 

et cela a semblé le résoudre pour moi.

1

Avait le même problème et n'a pas pu faire fonctionner IpGeocoder dans Rails3 avec les suggestions ci-dessus. Creusé dans le code source Rails3 pour la gemme. On dirait un moyen facile de contourner c'est d'utiliser la méthode Geokit MultiGeocoder pour Rails 3.

Exemple: loc = Geokit :: géocodeurs :: MultiGeocoder.geocode (remote.request_ip)

Ne pas oublier configurer correctement MultiGeocoder dans votre initialiseur - geokit_config.rb Geokit :: Geocoders :: provider_order = [: google,: us]

Questions connexes