【问题标题】:Set Timezone Per Request为每个请求设置时区
【发布时间】:2017-01-26 22:12:14
【问题描述】:

我正在根据请求设置用户的时区。用户的时区保存在数据库中,然后我在应用程序控制器中使用环绕操作设置时区。

但是,每隔一段时间,我似乎随机地收到一个错误 ArgumentError (no block given): 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

【问题讨论】:

    标签: ruby-on-rails ruby datetime timezone


    【解决方案1】:

    我们的应用使用了类似的模式,但是我们使用了 before_filter,然后

    Time.zone = @current_admin_user.time_zone
    

    一旦设置为进程设置,每个进程一次只运行一个请求。

    【讨论】:

    • 谢谢。我会试一试,看看会发生什么。我会试用 24 小时,如果可行,我会回复评论
    猜你喜欢
    • 1970-01-01
    • 2018-06-29
    • 2016-03-31
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    相关资源
    最近更新 更多