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