2014-11-24 1 views
2

Я использую Geocoder gem, чтобы найти текущее местоположение. Он работал нормально, но теперь, когда я проверил, он возвращает nil для request.location.Геокодер request.location возвращает nil

request.location => nil 
+0

Можете ли вы показать запрос, который вы сделали? Таким образом, мы можем видеть, воспроизводимо ли оно. – lulalala

ответ

1

Это будет происходить менее распространенные запросы (IP-запросы, некоторые жилые адреса и т.д.), когда timeout установлен слишком низко.

Вы можете проверить это, запустив консоль Rails и вручную, выполнив поиск:

[7] pry(main)> location = Geocoder.search("4.2.2.2") 
Geocoding API not responding fast enough (use Geocoder.configure(:timeout => ...) to set limit). 
=> [] 

Установите тайм-аут выше в Геокодер инициализаторе:

# config/initializers/geocoder.rb 
Geocoder.configure(
    ... 
    # geocoding service request timeout, in seconds (default 3): 
    timeout: 10, 
    ... 
) 

Вы, возможно, потребуется использовать 20 или 30 YMMV.