3

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

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

我已经尝试过这个问题解决方案并重新启动了我的服务器,但它对我不起作用。

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

4

1 回答 1

9

我找到了问题,是搜索 IP 花费了太多时间,所以我创建了一个初始化程序并更改了默认超时

配置/初始化程序/geocoder.rb

Geocoder.configure(
 :timeout => 20
)

我是如何找到的

我打开rails 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>]
于 2013-08-19T19:08:44.613 回答