La respuesta de la API de geoencoding no era JSON válida. y request.location = nil

if Rails.env.development? @current_location_geo = Geocoder.search(request.remote_ip).first else @current_location_geo = request.location end if !@current_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 

estoy consiguiendo request.location nil . Intenté agregar tiempo de espera en la configuración, pero no me ayudó.

error en el modo de producción como “La respuesta de la API de geoencoding no era JSON válida”.

y cuando lo rastreé, obtuve request.location como nil.

Mi versión del geocodificador es (1.2.6).

Parece que simplemente no tiene puntos de acción disponibles para acceder a los servicios geográficos seleccionados. Para mí, era una cantidad demasiado pequeña de solicitudes disponibles para los servicios geo de Google . Acabo de crearlo al registrarme en los servicios de aplicaciones de Google y poner en la clave de configuración de la API de Google. Para los servicios, que determinan la posición de Geo por IP , se recomendó :telize ya que no tiene ninguna cuota de solicitud actualmente por el respondedor anterior. También te aconsejo que veas el lado del almacenamiento de IP local para que los guarden en la posición Geo, como :geoip2 , y :maxmind_local . Entonces tu geoconfig será como sigue:

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'] }, } 

NOTA: Parece que :telize servicio :telize actualmente no funciona correctamente, y devuelve: Geocoding API's response was not valid JSON .

Consulte todas las opciones para configurar los servicios de Goe en el README del geocodificador .

config / initalizers / geocoder.rb

 Geocoder.configure( timeout: 10, ip_lookup: :telize ) 

Fuente: https://github.com/alexreisner/geocoder/issues/777

    Intereting Posts