Spec-Zone.ru › Ruby on Rails 7.2

модуль 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