Method: Time.use_zone
- Defined in:
- activesupport/lib/active_support/core_ext/time/zones.rb
.use_zone(time_zone) ⇒ Object
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.
61 62 63 64 65 66 67 68 69 |
# File 'activesupport/lib/active_support/core_ext/time/zones.rb', line 61 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 |