【问题标题】:gem 'timezone' on Ruby on Rails 4Ruby on Rails 4 上的 gem 'timezone'
【发布时间】:2014-07-17 18:41:04
【问题描述】:

我在 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。

谢谢。

【问题讨论】:

  • 我在 rails 3 上尝试了同样的方法,它工作并返回给我“澳大利亚/阿德莱德”区域。
  • 您似乎配置了错误的用户名。当我将用户名更改为无效时,它会给出相同的错误。
  • 我配置了正确的用户名。但它给出了同样的错误。
  • 我也遇到了同样的问题,请帮忙

标签: ruby-on-rails timezone geonames


【解决方案1】:

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

Timezone::Configure.username

如果是nil,你就找到了问题!

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多