Geocoder request.location返回nil

时间:2014-11-24 21:40:30

标签: ruby ruby-on-rails-3 geocoding rails-geocoder

我正在使用Geocoder gem查找当前位置。它之前工作正常,但现在当我检查它返回nil for request.location。

request.location => nil

2 个答案:

答案 0 :(得分:1)

timeout设置得太低时,会在不常见的搜索(ip查找,某些住宅地址等)上发生这种情况。

您可以通过运行Rails控制台并手动执行搜索来测试:

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

在Geocoder初始化程序中设置更高的超时时间:

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

您可能需要使用20或30. YMMV。

答案 1 :(得分:1)

来自地址解析器gem readme

request.location通常会在 test 中返回 nil 开发环境,因为诸如localhost0.0.0.0之类的地址不是地理编码的IP地址。

尝试ngrok将本地服务器公开到互联网。