支持Rails中的时区

时间:2018-04-24 00:07:13

标签: ruby-on-rails ruby ruby-on-rails-5

我有一个应用程序,允许同一公司内的用户创建作业记录,查看,编辑和搜索这些作业。用户遍布美国各地。加利福尼亚州的用户可能需要为纽约的用户更新工作,反之亦然。

我读了一篇文章,建议在控制器中使用before操作设置Time.zone,但如果我这样做,我认为Rails会在当前时区保存该记录,就像加州用户一样。然后,如果纽约用户更新相同的记录,则updated_at时间将与created_at属性位于不同的时区。理想情况下,我看到所有记录都有UTC时间,然后当给定用户访问/创建记录时,时间会以设置的时区显示给他们,但会以UTC格式保存在数据库中。我不确定如何做到这一点,或者它是否是正确的方法。任何人都可以提供一些指导吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

@Cannon Moyer如果你看到任何表的表结构。 updated_at和created_at列存储无时区的时间戳。显示时,随着应用程序的时区(UTC或IST)的设置,这些值会随时区自动转换。因此,不必担心给定用户访问/创建记录的时间。

对于你的情况,@ iGian建议this gem对你有用。它将Rails时区设置为浏览器为每个请求配置的时区。