9
私のアプリのユーザーにタイムゾーンを指定させ、各リクエストの開始時にタイムゾーンを設定できるようにしたいと考えています。 Railsでは、AFAICTが、これはシングルトンオブジェクトを設定することによって行われます。リクエスト中のTime.zoneの設定:スレッドセーフ?
Time.zone = "America/Los_Angeles"
ベストプラクティスの私の理解では、一般的に言えば、シングルトンは、一度設定しなければならない、ということです。たとえば、アプリケーションの構成です。同様の質問への答えから
、誰かが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
でそれを設定することを示唆しているが、この安全ですか?あるいは、あるスレッドが別のスレッドに影響を及ぼす危険性がありますか?私はこれを試してみるつもりですが、これは最も簡単なテストシナリオではありませんので、誰かがすでにこれを行っているかどうかを確認する必要があります。