1

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

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

所以我的问题是:

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

任何帮助,将不胜感激

4

1 回答 1

2

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

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

created_at- 保存格林威治标准时间,在我的例子中它显示 10.00,但我的系统时间是 12.00,因为我比格林威治标准时间提前 2 小时。

将时区设置为environment.rb

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

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

于 2013-09-23T00:41:11.177 回答