created_at与DateTime.now不同

时间:2013-09-23 00:16:12

标签: ruby-on-rails ruby datetime activerecord timestamp

进入一个非常棘手的情况,在保存模型实例时,我得到了9小时前创建的created_at值。

执行DateTime.now时,我得到NOW时间,以及在SQL服务器上执行NOW()和current_timestamp时。

所以我的问题是:

  1. 是否可以覆盖默认的created_at setter方法?或者更改时间戳设置器?或者rails如何处理设置create_at方法?
  2. 是否有任何配置设置?初始化器,或任何可能指向我设置created_at方法的正确方向的东西?
  3. 任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

http://www.ruby-doc.org/core-2.0.0/Time.html#method-c-now

Time.now - 返回初始化为当前系统时间的Time对象。

created_at - 保存了GMT时间,在我的情况下它显示10.00例如但我的系统时间是12.00,因为我比GMT提前2小时。

environment.rb中设置TimeZone:

# config/environment.rb
config.time_zone = "Central Time (US & Canada)"

运行rake time:zones:all以获取实际商家信息并使用您需要的商家信息,例如Central Time (US & Canada)