Ruby on rails gem&x27;时区';关于RubyonRails4

Ruby on rails gem&x27;时区';关于RubyonRails4,ruby-on-rails,timezone,geonames,Ruby On Rails,Timezone,Geonames,我在GeoNames上建立了一个帐户,使免费Web服务能够使用gem“时区”(大约一天前)。当我转到http://www.geonames.org/enablefreewebservice上面写着 The account my_user_name has been successfully enabled to use the free webservices. 当我在地址栏中输入以下内容并单击enter时,它也可以工作 http://api.geonames.org/findNearbyP

我在GeoNames上建立了一个帐户,使免费Web服务能够使用gem“时区”(大约一天前)。当我转到
http://www.geonames.org/enablefreewebservice
上面写着

 The account my_user_name has been successfully enabled to use the free webservices.
当我在地址栏中输入以下内容并单击enter时,它也可以工作

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.
这是我第一次使用地理名称,所以我没有超过限制。我该如何着手解决这个问题?我注意到,
require'timezone'
在控制台中返回false


谢谢。

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

Timezone::Configure.username
如果是
nil
,那么您已经找到了问题

尝试将配置代码放在初始值设定项中,而不是
application.rb
。尝试创建文件
config/initializers/timezone.rb
,并将代码放在那里

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

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

我在rails 3上也做了同样的尝试,它成功了,并返回给我“Australia/Adelaide”区域。看起来你配置了错误的用户名。当我将用户名更改为无效时,会出现相同的错误。我已配置正确的用户名。但它给出了同样的错误。我面临同样的问题,请帮助