Time.zone在ruby 1.9.2 -p290中是nill

时间:2011-07-19 12:32:11

标签: ruby-on-rails

当我尝试使用Time.zone.now时,它给出了一个错误,显示Time.zone是nill,因为我没有在我的环境文件中提到config.time_zone,当我这样做时,我的服务器没有得到开始并给我一个错误。

initialize_time_zone':分配给config.time_zone的值无法识别。运行“rake -D time”以查找用于查找适当时区名称的任务列表。 (RuntimeError)

我正在使用 rails -v Rails 2.3.11 ruby -v ruby​​ 1.9.2p290(2011-07-09修订版32553)[i686-linux] rvm -v rvm 1.6.23 by Wayne E. Seguin(wayneeseguin@gmail.com)[https://rvm.beginrescueend.com/]

*本地宝石*

动作制作者(2.3.11) actionpack(2.3.11) activerecord(2.3.11) activeresource(2.3.11) activesupport(2.3.11) archive-tar-minitar(0.5.2) 蓝布(2.1.0) 建设者(3.0.0) 列(0.3.4) 逃跑(0.0.4) fastercsv(1.5.4) hpricot(0.8.4) linecache19(0.5.12) 哑剧型(1.16) mysql(2.8.1) nokogiri(1.5.0) pr_geohash(1.0.0) 机架(1.1.2) 铁轨(2.3.11) 耙子(0.8.7) RedCloth(4.2.7) rsolr(0.12.1) ruby-debug-base19(0.11.25) ruby-debug19(0.11.6) ruby_core_source(0.1.5) 太阳黑子(1.2.1) sunspot_rails(1.2.1) will_paginate(2.3.15)

由于 NISHANT


如果我们没有在环境文件中提及Time.zone,默认情况下它将是UTC。我已经提到config.active_record.default_time zone为:utc,这在ruby 1.8.7中工作正常,但是当我将其更改为ruby 1.9.2时会导致问题。

1 个答案:

答案 0 :(得分:1)

如果要使用Time.zone,则必须在配置文件中明确设置时区。似乎没有默认值。

config/environment.rb

Rails::Initializer.run do |config|
    config.time_zone = 'UTC'
end

获取所有可用时区的列表及其UTC偏移量

rake time:zones:all