宝石'timezone' on Ruby on Rails 4



我已经在GeoNames上创建了一个帐户,可以使用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。

谢谢。

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

Timezone::Configure.username

如果是nil,你已经找到你的问题!

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

Timezone::Configure.begin do |c|
  c.username = 'xxxx'
end
在此之后启动控制台并再次检查用户名。如果它现在已经定义,那么您的请求现在应该可以工作了!

最新更新