【问题标题】:Managing multiple users time zones in ruby on rails在 ruby​​ on rails 中管理多个用户时区
【发布时间】:2012-11-06 01:05:36
【问题描述】:

我想将事件保存在默认时区,即每当用户提交事件时,它将转换为默认时区并保存在数据库中。

每当用户请求事件时,系统将找到用户时区并将日期(从默认格式)转换为该用户时区并将其显示给用户。

我很难从哪里开始,我看到了很多笔记和文件,但无法弄清楚这样做的完整过程。

我看到了这段代码,但不明白如何使用它:

before_filter :set_time_zone

def set_time_zone
  Time.zone = current_user.time_zone if current_user
end

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 timezone


    【解决方案1】:

    数据库中的默认时区是 UTC。

    有两种方法可以做到:

    1. 允许他们的用户将他们的时区存储在数据库中
    2. 从他们的 IP 中获取他们的时区

    对于选项 1,Rails 对时区有很好的支持。 #all method 将允许您创建一个下拉列表供他们选择。然后将其与用户记录一起保存在数据库中。

    选项 2 对用户的工作量较少,但也不太准确。有一些服务可以将 IP 转换为时区。

    要显示给定时区的时间,请使用Time#in_time_zone,或者您可以像上面一样设置Time.zone,它应该可以正常显示。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 2012-11-07
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多