2

我已经在 GeoNames 上创建了一个帐户,启用了免费的 webservrices 以使用 gem 'timezone'(大约一天前)。当我去http://www.geonames.org/enablefreewebservice它说

 The account my_user_name has been successfully enabled to use the free webservices.

当我将以下内容放在地址栏中并单击输入时,它也可以工作

http://api.geonames.org/findNearbyPostalCodes?lat=47&lng=9&username=my_user_name

但是,当我在 Rail4 应用程序控制台中运行以下命令时

Timezone::Configure.begin do |c|
  c.username = 'xxxx'
end
timezone = Timezone::Zone.new :latlon => [-34.92771808058, 138.477041423321]

我收到错误消息:

 Timezone::Error::NilZone: No zone was found. Please specify a zone.

这是我第一次使用 GeoNames,所以我没有超出限制。我该如何解决这个问题?我注意到一件事,require 'timezone'在控制台中返回 false。

谢谢。

4

1 回答 1

0

我怀疑您的用户名配置可能未定义。打开控制台并检查

Timezone::Configure.username

如果是nil,你就发现了你的问题!

尝试将您的配置代码放在初始化程序中,而不是application.rb. 尝试创建文件config/initializers/timezone.rb并将代码放在那里。

Timezone::Configure.begin do |c|
  c.username = 'xxxx'
end

之后启动控制台并再次检查用户名。如果现在已定义,您的请求现在应该可以工作了!

于 2014-10-09T15:43:10.723 回答