【问题标题】:Trouble with the speed of using in_time_zone使用 in_time_zone 的速度问题
【发布时间】:2012-05-16 00:44:17
【问题描述】:

我正在使用 Ruby 1.8.7 和 Rails 3.0.3。尽管目前我的所有用户都与我的服务器处于同一时区,但我认为为了准备统治世界,我会摆脱所有RubyTimeObjIGotOutOfMyDb.getlocal 调用并将它们替换为用户时区所在的RubyTimeObjIGotOutOfMyDb.in_time_zone(user_timezone)我的用户表中的一列。现在发生的事情是我的页面加载时间可能是 5 到 6 倍。这是错误的策略吗?有没有更好的方法让我为来自服务器的不同时区的用户做好准备?

【问题讨论】:

    标签: ruby-on-rails ruby timezone


    【解决方案1】:

    看这个railscast

    我认为你只需要这样做

    控制器/应用程序.rb

    before_filter :set_user_time_zone
    
    private
    
    def set_user_time_zone
      Time.zone = current_user.time_zone if logged_in?
    end
    

    并且所有的时间都会在从 db 获取时进行转换

    如果时间不在当前时区,请在视图中尝试(或在控制台中进行测试)

    Time.now.in_time_zone
    

    更新: 如果您多次调用in_time_zone(zone),我认为它会多次获取相应的时差,就像截屏视频告诉的那样,它只会获取一次并在每次转换中使用它。

    【讨论】:

    • 非常感谢!!正是我想要的!
    猜你喜欢
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多