轨。加载current_user时设置默认时区

时间:2015-02-11 13:39:14

标签: ruby-on-rails ruby devise

我想在初始化current_user(Devise)时更改应用程序时区,如下所示:

    Time.zone = current_user.settings(:main).time_zone

应用程序中放置此代码的最佳位置是什么(应用程序控制器,before_filter不是解决方案)?

1 个答案:

答案 0 :(得分:1)

我认为这里最安全的方法是使用 around_action 之类的,确保指定您希望这种情况发生的操作:

class SomeController < ApplicationController
    around_action :set_time_zone, only: :show

    private

    def set_time_zone
       if current_user
         Time.zone = current_user.settings(:main).time_zone 
       end
       yield         
    end
end