0

Ruby1.8.7とRails3.0.3を使用しています。現在、すべてのユーザーがサーバーと同じタイムゾーンにいますが、世界支配に備えて、すべての呼び出しを削除し、ユーザーのタイムゾーンがユーザーのテーブルの列である場所にRubyTimeObjIGotOutOfMyDb.getlocal置き換えると思いました。 RubyTimeObjIGotOutOfMyDb.in_time_zone(user_timezone)。何が起こったのかというと、私のページの読み込みにはおそらく5倍から6倍の時間がかかります。これは間違った戦略ですか?サーバーとは異なるタイムゾーンのユーザーのために準備するより良い方法はありますか?

4

1 に答える 1

0

このレールキャストを見て

私はあなたがする必要があると思います

controllers / 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

更新:その呼び出しをin_time_zone(zone)何度も実行している場合、対応する時間差を何度もフェッチしていると思います。スクリーンキャストの指示に従って、1回だけフェッチし、すべての変換で使用します。

于 2012-05-16T01:26:38.607 に答える