Ruby Geocoder抛出错误

时间:2014-01-03 04:07:23

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

我正在研究RoR并使用 Ruby Geocoder 进行IP识别。我在下面使用的代码片段。

的Gemfile

gem "geocoder"

然后获取国家/地区我正在使用

country = request.location.country

以前工作得很好,但是现在它抛出了一个错误,比如未定义的方法国家/地区

我无法弄清楚这个问题。任何人都可以帮助我找出解决方案或建议API上的任何其他宝石,以便根据IP地址查找国家/地区

感谢
此致

2 个答案:

答案 0 :(得分:1)

Geocoder服务似乎存在问题。甚至我在AWS上运行的应用程序在过去的36小时内也出现了同样的问题。它现在运作良好。我没有做任何事情,这让我意味着Geocoder出现了一些问题,他们现在已经解决了这个问题。

我想知道这是否曾经发生过,因为它确实让我担心。

答案 1 :(得分:0)

如果您使用的是本地开发环境,则request.location很可能会返回nil。根据{{​​3}}:

  

请注意,[request.location]通常会在测试和开发环境中返回nil,因为“localhost”和“0.0.0.0”之类的东西不是Internet IP地址。

因此,nil例外所涉及的特定问题 - 在很大程度上 - 应限于开发环境。在本地开发时,可以使用Ruby异常处理或Rails the docs来处理nil异常:

request.location.try(:country)

<强>更新

正如@nonocut在他的回答中解释的那样,问题中引用的这个问题可能是由于谷歌地图的某些问题。然而,能够通过异常处理来处理这些中断非常重要 - 它有利于本地开发,并且可以实现实用的部署。