アプリのユーザーがタイム ゾーンを指定できるようにし、各リクエストの開始時にタイム ゾーンを設定できるようにしたいと考えています。Rails では、AFAICT では、これはシングルトン オブジェクトを設定することによって行われます。
Time.zone = "America/Los_Angeles"
ベスト プラクティスに関する私の理解では、一般的に言えば、シングルトンは 1 回設定する必要があります。たとえば、アプリケーション構成で。
同様の質問への回答から、誰かが ApplicationController に設定することを提案しています
class ApplicationController < ActionController::Base
before_filter :set_timezone
def set_timezone
# current_user.time_zone #=> 'London'
Time.zone = current_user.time_zone if current_user && current_user.time_zone
end
end
これは安全ですか?それとも、あるスレッドが別のスレッドに影響を与えるリスクがありますか? これのテストを実行してみますが、これまでで最も簡単なテスト シナリオではないので、誰かが既にこれを行っているかどうかを確認する必要があると考えました。