2014-12-12 15 views
5
if Rails.env.development? 
     @current_location_geo = Geocoder.search(request.remote_ip).first 
    else 
     @current_location_geo = request.location 
    end 
    if [email protected]_location_geo.nil? && @current_location_geo.ip == "127.0.0.1" 
     @departure_currency_code= "AUD" 
     @departure_currency_name= ["Australian Dollar(AUD $)","AUD"] 
    else 
     @country = Country.new(request.location.data["country_code"].to_s) 
     @country_code = @country.currency.code 
    end 
end 

Otrzymuję request.location zero. Próbowałem dodać limit czasu w konfiguracji, ale nie pomógł mi.Odpowiedź API geokodującego nie była poprawna JSON. i request.location = nil

błąd w tryb produkcji jako "Odpowiedź interfejsu API geokodującego była nieprawidłowa JSON."

i kiedy go wyśledziłem, otrzymałem request.location jako zero.

moja wersja geocoder to (1.2.6).

Odpowiedz

1

Wydaje się, że po prostu nie ma dostępnych punktów akcji, aby uzyskać dostęp do wybranych usług geo. Dla mnie była to zbyt mała liczba dostępnych zapytań o usługi geo. Po prostu zwiększyłem to, rejestrując się w usługach aplikacji Google i wprowadzając klucz API konfiguracyjny Google. W przypadku usług, które określają pozycję Geo przez IP, zalecono :telize, ponieważ nie ma żadnych kwot na żądanie od poprzedniego dostawcy. Radzę ci również, abyś zobaczył stronę lokalnego magazynu IP, aby ponownie umieścić je w pozycji geograficznej, na przykład :geoip2 i :maxmind_local. Więc geoconfig będzie jak następuje:

config/initalizers/geocoder.rb:

Geocoder.configure(        
    lookup: :google,             
    ip_lookup: :geoip2,                
    maxmind_local: { 
    package: :city     
    },              
    geoip2: { 
    file: File.join('vendor/share', 'GeoLite2-City.mmdb') 
    },    
    google: {       
    timeout: 20, 
    use_https: true,                
    api_key: ENV['GOOGLE_API_KEY']             
    },  
} 

UWAGA: Wydaje się, że obecnie nie :telize usługa działa prawidłowo, powrót: Geocoding API's response was not valid JSON.

Proszę odnieść się do wszystkich opcji, aby skonfigurować usługi goe na geocoder's README.

+0

Doskonale to rozwiązało mój problem – SsouLlesS