mi piacerebbe per consentire agli utenti di mia app specificare un fuso orario, e quindi impostare il fuso orario, all'inizio di ogni richiesta. In Rails, AFAICT, questo è fatto impostando l'oggetto Singleton:Impostazione Time.zone durante una richiesta: thread-safe?
Time.zone = "America/Los_Angeles"
mia comprensione delle migliori pratiche è che, in generale, un Singleton deve essere impostato UNA VOLTA. Ad esempio nella configurazione dell'applicazione.
Da una risposta ad una domanda simile, qualcuno suggerisce l'impostazione nel 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
Questa funzione è sicura? Oppure corro il rischio di avere un thread che ne influenza un altro? Cercherò in esecuzione di un test di questo, ma non è lo scenario di prova più semplice mai così ho pensato di vedere se qualcuno ha già fatto.