Для того, чтобы выставить время отображения созданных объектов для своей временной зоны нужно:
-
зайти в
../config/application.rb
-
найти строку:
-
заменить 'Central Time (US & Canada)' на свою зону, которую можно посмотреть здесь: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
-
расхешировать строку со вставленной в нее своей временной зоной
config.time_zone = 'Europe/Kiev'
-
сохранить изменения
Теперь все создаваемые в базе данных объекты будут показываться в нашем приложении относительно нашей временной зоны. В базе они лежат со временем 'UTC'
Если же у нас много юзеров, которые заходят к нам из разных временных зон, то имеет смысл сделать метод в нашем ActionController (по умолчанию это ApplicationController):
around_filter :user_time_zone, :if => :current_user
def user_time_zone(&block)
Time.use_zone(current_user.time_zone, &block)
end
Фильтры "around" ответственны за запуск экшна с помощью yield, подобно тому, как работают промежуточные программы Rack.
Ссылки: