这两段代码之间的区别是什么?什么时候应该使用一个与另一个?
Time.zone
class ApplicationController < ActionController::Base
before_filter :set_time_zone
def set_time_zone
Time.zone = current_user.time_zone
end
end
Time.use_zone
class ApplicationController < ActionController::Base
around_filter :set_time_zone
def set_time_zone(&block)
Time.use_zone(current_user.time_zone, &block)
end
end
答案 0 :(得分:0)
似乎Time.use_zone
在提供的块内局部覆盖Time.zone
,然后在完成后将Time.zone
重置为现有值。
因此,第二个代码块相当于在每个方法的开头调用Time.zone = current_user.time_zone
,然后将其重置为Time.zone
/config/application.rb
虽然我还不确定推荐的方法是哪种。从性能角度来看,似乎第一种选择会更好,但可能会出现第二种选择更有意义的情况。
更多信息: