Geocoder request.location返回nil

问题描述 投票:2回答:2

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

request.location => nil
ruby ruby-on-rails-3 geocoding rails-geocoder
2个回答
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。


0
投票

来自地理编码器的宝石readme

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

尝试ngrok在Internet上公开您的服务器。

© www.soinside.com 2019 - 2024. All rights reserved.