Ruby on rails Rails Postgre日期时间另存为零
我正试图在我的模型上保存一个datetime字段。我保存正确,但当我获取记录时,它的值为零。我在postgresql中使用Rails 4.2.4。例如:Ruby on rails Rails Postgre日期时间另存为零,ruby-on-rails,ruby,postgresql,datetime,Ruby On Rails,Ruby,Postgresql,Datetime,我正试图在我的模型上保存一个datetime字段。我保存正确,但当我获取记录时,它的值为零。我在postgresql中使用Rails 4.2.4。例如: 2.2.2 :006 > Post.create(data_agendada: DateTime.now) (0.4ms) BEGIN SQL (0.7ms) INSERT INTO "posts" ("data_agendada", "created_at", "updated_at") VALUES ($1, $2,
2.2.2 :006 > Post.create(data_agendada: DateTime.now)
(0.4ms) BEGIN
SQL (0.7ms) INSERT INTO "posts" ("data_agendada", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["data_agendada", "2016-01-31 17:45:42.895390"], ["created_at", "2016-01-31 17:45:42.897885"], ["updated_at", "2016-01-31 17:45:42.897885"]]
Sun, 31 Jan 2016 17:45:42 BRST -02:00
(34.5ms) COMMIT
Post id: 71, cod: nil, data: nil, legenda: nil, created_at: "2016-01-31 19:45:42", updated_at: "2016-01-31 19:45:42", tags: nil, facebook: nil, twitter: nil, instagram: nil, app: nil, materia_id: nil, shares_count: nil, fonte_id: nil, user_id: nil, likes_count: nil, data_agendada: "2016-01-31 19:45:42"
2.2.2 :007 > Post.last
Post id: 71, cod: nil, data: nil, legenda: nil, created_at: nil, updated_at: nil, tags: nil, facebook: nil, twitter: nil, instagram: nil, app: nil, materia_id: nil, shares_count: nil, fonte_id: nil, user_id: nil, likes_count: nil, data_agendada: nil
有人知道有什么问题吗?谢谢 如果默认时区设置不正确,datetime字段可能会出现这种情况。查看此以了解更多信息 您的
应用程序.rb
应该有一个来自rake time:zones:all
的时区(或者根本没有)
如果默认时区设置不正确,datetime字段可能会出现这种情况。查看此以了解更多信息 您的
应用程序.rb
应该有一个来自rake time:zones:all
的时区(或者根本没有)
您可以这样做:1)test=Post.new(data\u agenda:DateTime.now);2) 测试有效吗?;(3) test.error,而不是
Post.create!(data\u agenda:DateTime.now)
以下是输出:2.2.2:004>test.valid?=>true 2.2.2:005>test.errors=>#对于Post.create!:对于Post.create!:=>#看起来它保存正确,但当我获取记录时,存储的值为null。我还尝试在postgre控制台上执行sql,但也得到了相同的结果。保存日期是确定的。它只发生在DateTime上。您可以这样做:1)test=Post.new(data\u agenda:DateTime.now);2) 测试有效吗?;(3) test.error,而不是Post.create!(data\u agenda:DateTime.now)
以下是输出:2.2.2:004>test.valid?=>true 2.2.2:005>test.errors=>#对于Post.create!:对于Post.create!:=>#看起来它保存正确,但当我获取记录时,存储的值为null。我还尝试在postgre控制台上执行sql,但也得到了相同的结果。保存日期是确定的。只有datetimeguess时区配置正确时才会发生这种情况:config.time\u zone='bassilia'config.active\u record.default\u timezone='bassilia'可能尝试删除它们,重新启动控制台,然后看看它是否工作。如果是的话,那么问题将与该部分有关。否则,我将查找其他可能的问题准备重新启动控制台、计算机和其他一切。还尝试创建只有一个datetime字段的测试模型。。。它也会出现同样的问题,所以我想,guess可能是postgre的问题。您是否删除了时区配置,在rails c
中键入exit
,然后在rails c
,Post.last
?谢谢!真管用!但我的配置有什么问题?我猜时区配置正确:config.time\u zone='bassilia'config.active\u record.default\u timezone='bassilia'也许可以尝试删除它们,重新启动控制台,看看它是否正常工作。如果是的话,那么问题将与该部分有关。否则,我将查找其他可能的问题准备重新启动控制台、计算机和其他一切。还尝试创建只有一个datetime字段的测试模型。。。它也会出现同样的问题,所以我想,guess可能是postgre的问题。您是否删除了时区配置,在rails c
中键入exit
,然后在rails c
,Post.last
?谢谢!真管用!但是我的配置出了什么问题?
config.time_zone = "Brasilia"