class method
self.use_zone
Ruby on Rails edge
Since v3.0.20Signature
self.use_zone(time_zone)
Allows override of Time.zone locally inside supplied block; resets Time.zone to existing value when done.
class ApplicationController < ActionController::Base
around_action :set_time_zone
private
def set_time_zone
Time.use_zone(current_user.timezone) { yield }
end
end
NOTE: This won’t affect any ActiveSupport::TimeWithZone objects that have already been created, e.g. any model timestamp attributes that have been read before the block will remain in the application’s default timezone.
Parameters
-
time_zonereq
Source
# File activesupport/lib/active_support/core_ext/time/zones.rb, line 66
def use_zone(time_zone)
new_zone = find_zone!(time_zone)
begin
old_zone, ::Time.zone = ::Time.zone, new_zone
yield
ensure
::Time.zone = old_zone
end
end
Defined in activesupport/lib/active_support/core_ext/time/zones.rb line 66
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in Time