【问题标题】:Rails - Setting time_zone dynamically as per user selectionRails - 根据用户选择动态设置 time_zone
【发布时间】:2012-03-21 07:31:35
【问题描述】:
感谢您对我的新网站功能之一的帮助!
这是关于动态 time_zones 的要求,用户可以从一组预定义的 time_zones 中进行选择,例如 us_zones。当用户选择区域时,应将整个站点设置/更新为 TimeZone。
但是,目前新的时区并没有更新到 Apache 中,时区的更新仅在服务器重新启动时发生。
我正在考虑使用 Rails Initializer 类和 initialize_time_zone() 方法,但即使这样也需要重新启动 rails 服务器。
提前致谢!
【问题讨论】:
标签:
ruby-on-rails
timezone
【解决方案1】:
放置到应用程序控制器,如下所示:
def set_api_time_zone
utc_offset = current_user_session && current_user_session.user ? current_user_session.user.time_zone_offset.to_i.minutes : 0
user_timezone = ActiveSupport::TimeZone[utc_offset]
Time.zone = user_timezone if user_timezone
end
【讨论】:
-
感谢您的提示,将使用类似的提示,但是我会按照建议使用 TimeZone 而不是偏移量 DateTime.now.in_time_zone('Pacific Time (US & Canada)') here我有预定义的时区