2017-01-26 131 views
0

我正在爲每個請求設置用戶的時區。用戶的時區保存在數據庫中,然後在應用程序控制器中使用around操作設置時區。設置每個請求的時區

然而,在一段時間每一次看似隨機我得到一個錯誤引發ArgumentError(沒有塊給出):應用程序/控制器/ application_controller.rb:84:在`set_time_zone」

而且我不知道爲什麼?任何人都這樣做過?有沒有更好的辦法?

我跟着這個幫我設置它: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 

回答

0

我們的應用程序採用了類似的模式,但是我們使用的before_filter,然後

Time.zone = @current_admin_user.time_zone 

一旦設置它爲進程設置,並且每個進程一次只運行一個請求。

+1

謝謝。我會給這個鏡頭,看看會發生什麼。我會試用24小時,如果它有效,請回復 –

相關問題