request.location ruby​​地理编码器中的错误

时间:2013-08-17 04:52:38

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

在我的sesions表中,我使用请求方法存储国家和城市名称,现在,在ubuntu服务器中它运行良好但在redhat中我收到此错误

NoMethodError (undefined method `city' for nil:NilClass)

我试过这个issue solution并重新启动了我的服务器,但它对我不起作用。

在两台服务器中,我使用的是Passenger + Apache

1 个答案:

答案 0 :(得分:9)

我发现了问题,那就是搜索IP占用了太多时间,所以我创建了一个初始化程序并更改了默认超时

配置/初始化/ geocoder.rb

Geocoder.configure(
 :timeout => 20
)

我是如何找到的

我打开导轨c并搜索我的IP

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

现在可行了

$ location = Geocoder.search("myIpAddres")
=> [#<Geocoder::Result::Freegeoip:0xa7130b8 @data={"ip"=>"myIpAddres", "country_code"=>"CO", "country_name"=>"Colombia", "region_code"=>"02", "region_name"=>"Antioquia", "city"=>"Medellín", "zipcode"=>"", "latitude"=>6.2518, "longitude"=>-75.5636, "metro_code"=>"", "areacode"=>""}, @cache_hit=nil>]