我已经在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
在此之后启动控制台并再次检查用户名。如果它现在已经定义,那么您的请求现在应该可以工作了!