我根据请求设置用户的时区。用户的时区保存在数据库中,然后我在应用程序控制器中使用around动作设置时区。
然而,每隔一段时间,似乎随机我得到一个错误ArgumentError(没有给出阻止):app / controllers / application_controller.rb:84:in`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 :(得分:0)
我们的应用程序使用类似的模式,但我们使用before_filter,然后
Time.zone = @current_admin_user.time_zone
设置后,为进程设置,每个进程一次只运行一个请求。