Rails时区

4
我理解Rails的默认行为是将数据库记录和任何日期/时间相关的列保存为UTC时间。我们可以通过在environment.rb中使用config.time_zone来控制向用户显示日期/时间。所以基本上,config.time_zone设置是用来控制显示的,通过它,Rails将记录从UTC转换为我们在config.time_zone中指定的时区。
有没有什么方法或设置可以强制Rails将记录保存为EST而不是UTC,并仍然根据config.time_zone设置进行转换以进行显示?
-Satynos
2个回答

3
你应该考虑你提出问题的原因。 请记住:Rails实现惯例优于配置 - 你最好有非常好的理由想要改变惯例!特别是在数据库中保存日期时间这样任意的事情上,而且Rails使我们处理日期非常容易。

0

我不知道如何强制记录保存在 EST 中,但我想分享一下关于在数据库中使用本地时区的讨论:http://www.ruby-forum.com/topic/890711

从这个讨论中,我最终使用了 skip_time_zone_conversion_for_attributes 来解决类似的问题(关于该方法:http://api.rubyonrails.org/classes/ActiveRecord/Timestamp.html)。 这可能对你有兴趣 - 或许将时区设置为 EST,然后尝试使用这种方法。

祝好运!我知道已经过了一段时间,但也许花点时间告诉人们你最终做了什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接