Ruby on rails 支持Rails中的时区

Ruby on rails 支持Rails中的时区,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我有一个应用程序,允许同一家公司的用户创建工作记录、查看、编辑和搜索这些工作。用户分布在美国各地。加利福尼亚州的用户可能需要为纽约的用户更新作业,反之亦然 我通读了一篇文章,其中建议在控制器中使用before操作设置Time.zone,但如果我这样做,我假设Rails会将该记录保存在当前时区中,以供类似加州用户使用。然后,如果纽约用户更新相同的记录,则在时间更新的将位于与在属性创建的不同的时区。理想情况下,我看到我的所有记录都有UTC时间,然后当给定的用户访问/创建记录时,时间会显示在他们设置的

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

我通读了一篇文章,其中建议在控制器中使用before操作设置
Time.zone
,但如果我这样做,我假设Rails会将该记录保存在当前时区中,以供类似加州用户使用。然后,如果纽约用户更新相同的记录,则在时间更新的
将位于与在
属性创建的
不同的时区。理想情况下,我看到我的所有记录都有UTC时间,然后当给定的用户访问/创建记录时,时间会显示在他们设置的时区中,但会作为UTC保存在数据库中。我不知道该怎么做,也不知道这是否是正确的方法。有人能提供一些指导吗


提前谢谢

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


对于您的案例,@iGian建议对您很有用。它为每个请求将Rails时区设置为浏览器配置的时区。

这个问题稍微超出了s/O,可以帮助您。。。但是是的,这是解决问题的基本思路。1) 使用时区接受时间,2)存储时转换为UTC,3)显示时转换为本地。例如,我将使用相对时间。我的意思是服务器应该使用他的参考时间,每个客户机应该使用自己的参考时间。然后,您需要根据服务器时间选择当前客户端时间进行计算。所以,服务器上的时间是一致的,客户端只看到转换后的时间。为了获得客户端时间,我想您需要一些javascript来将这些信息发送到rails。也许你能给点提示。