2017-01-26 3 views
0

Я устанавливаю часовой пояс пользователя на запрос. Часовой пояс пользователя хранится в базе данных, а затем я устанавливаю часовой пояс вокруг действия в контроллере приложения.Установка часового пояса по запросу

Однако каждый раз в некоторое время, казалось бы, случайно я получаю ошибку 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 часов и прокомментирую, если это сработает –