2012-05-16 151 views
0

我使用的是Ruby 1.8.7和Rails 3.0.3。儘管目前我的所有用戶都與我的服務器處於同一時區,但我認爲在爲全球統治做準備時,我會擺脫我所有的RubyTimeObjIGotOutOfMyDb.getlocal調用,並將其替換爲RubyTimeObjIGotOutOfMyDb.in_time_zone(user_timezone),其中用戶的時區是我的一列用戶的表。現在發生的事情是,我的頁面可能需要加載5到6倍的時間。這是錯誤的策略?有沒有更好的方法可以爲我的服務器不同時區的用戶做好準備?使用速度麻煩in_time_zone

回答

0

看着這railscast

我認爲你需要做的僅僅

控制器/ application.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 

UPDATE: 如果你正在做的通話in_time_zone(zone)很多次,我認爲這是獲取相應的時間差很多次,截屏告訴做的方式,將只讀取一次,並用它在每次轉換。

+0

非常感謝!正是我在找什麼! – pitachip