使用in_time_zone的速度有问题



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

观看此 railscast

我认为你只需要做

控制器/应用程序.rb

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

从数据库获取时,所有时间都将被转换

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

Time.now.in_time_zone

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

相关内容

  • 没有找到相关文章