为什么rails保存对象时,created_at时间不是当前系统时间?

subject = Subject.new(name:"First Subject", position: 1, visible: true)

irb(main):008:0* subject.save
   (0.2ms)  BEGIN
  SQL (2.8ms)  INSERT INTO `subjects` (`name`, `position`, `visible`, `created_at`, `updated_at`) VALUES ('First Subject', 1, 1, '2016-04-16 01:52:31', '2016-04-16 01:52:31')
   (1.5ms)  COMMIT

irb(main):008:0* subject
=> #<Subject id: 1, name: "First Subject", position: 1, visible: true, created_at: "2016-04-16 01:52:31", updated_at: "2016-04-16 01:52:31">

本来是在10点左右保存的,但是里面的created_at, updated_at时间是1点,不和系统时间一致。

阅读 4.2k
3 个回答

config/application.rb

config.active_record.default_timezone = :local  

目前还不是太明白,参考 https://ruby-china.org/topics/16187

时区是哪个时区 是东八区么? 加上8个小时看看是几点

irb>Time.now
=> 2016-05-12 15:30:14 +0800
是这样的吗

因为你在GMT+8。一般AR里面存的是GMT时间。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进