Spec-Zone.ru › Ruby on Rails 8.1

модуль ActiveRecord::Timestamp

Временные метки Active Record

Active Record автоматически добавляет временные метки при создании и обновлении записей, если в таблице есть поля с именами created_at/created_on или updated_at/updated_on.

Добавление временных меток можно отключить, задав:

config.active_record.record_timestamps = false

По умолчанию временные метки указывают время в формате UTC, но можно использовать местный часовой пояс, задав:

config.active_record.default_timezone = :local

Time атрибуты с учетом часового пояса

Active Record учитывает часовой пояс для всех столбцов datetime и time. По умолчанию эти значения хранятся в базе данных в формате UTC и преобразуются в текущий часовой пояс Time.zone при извлечении из базы данных.

Эту возможность можно полностью отключить, задав:

config.active_record.time_zone_aware_attributes = false

Также можно указать, что только столбцы datetime должны учитывать часовой пояс (а time — нет), задав:

ActiveRecord::Base.time_zone_aware_types = [:datetime]

Также можно добавить типы с учетом часового пояса, специфичные для конкретной базы данных. Например, для PostgreSQL:

ActiveRecord::Base.time_zone_aware_types += [:tsrange, :tstzrange]

Наконец, можно указать атрибуты модели, для которых не следует выполнять преобразование часового пояса, например, задав:

class Topic < ActiveRecord::Base
  self.skip_time_zone_conversion_for_attributes = [:written_on]
end

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API