2017-01-26 6 views
0

Ich stelle die Zeitzone des Benutzers pro Anfrage ein. Die Zeitzone des Benutzers wird in der Datenbank gespeichert, und dann stelle ich die Zeitzone mit einer Umgehungsaktion im Anwendungscontroller ein. haben in `set_time_zone‘Zeitzone pro Anfrage einstellen

Und ich habe keine Ahnung, warum:

aber jeder einmal in eine Weile, scheinbar zufällig bekomme ich einen Fehler Argument (kein Block angegeben): app/controllers/application_controller.rb: 84? Jeder macht das schon mal? Gibt es einen besseren Weg?

folgte ich mich das es bis zu helfen: https://www.varvet.com/blog/working-with-time-zones-in-ruby-on-rails/

application_controller:

around_action :set_time_zone, if: :current_user 

def set_time_zone(&block) 
    time_zone = current_user.try(:time_zone) || 'UTC' 
    Time.use_zone(time_zone, &block) 
end 

Antwort

0

Unsere App ein ähnliches Muster verwendet, jedoch verwenden wir eine before_filter, dann

Time.zone = @current_admin_user.time_zone 

Einmal Legen Sie fest, dass es für den Prozess festgelegt ist und dass jeder Prozess nur eine Anforderung gleichzeitig ausführt.

+1

danke. Ich werde es versuchen und sehen, was passiert. Ich werde es 24 Stunden ausprobieren und zurückkommen, wenn es funktioniert –

Verwandte Themen