4

我了解 rails 的默认行为是将数据库记录和任何与日期/日期时间相关的列保存到 UTC 时间。我们可以通过 environment.rb 中的 config.time_zone 来控制向用户显示日期/日期时间。所以基本上 config.time_zone 设置是控制显示,rails 通过它将记录从 UTC 转换为我们在 config.time_zone 中指定的记录。

是否有任何方法或设置强制 rails 将记录保存在 EST 而不是 UTC 中,并且仍然根据 config.time_zone 设置进行转换以显示?

-萨蒂诺斯

4

2 回答 2

3

您应该考虑问题背后的原因。记住:Rails 实现了约定优于配置——你最好有一个很好的理由想要改变约定!尤其是像日期时间如何保存在数据库中这样随意的事情,并且考虑到 Rails 使我们处理日期变得多么容易。

于 2010-01-19T15:53:50.687 回答
0

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

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

祝你好运!我知道已经有一段时间了,但也许需要一些时间让人们知道你最终做了什么。

于 2012-06-20T16:11:29.443 回答