По умолчанию Rails всегда преобразует время в UTC перед тем, как записывать или читать из базы данных, в этом нет ничего плохого.
Вы можете изменить это поведение в init приложения, например, в /config/application/rb
:
config.time_zone = 'Atlantic Time (Canada)'
config.active_record.default_timezone = :local
Если вы ищете способ сохранить дату создания / последнего обновления записи, вы можете использовать временные метки, которые будут автоматически сохранять обновление / созданную вами запись во время и дату.
В вашем файле миграции:
class CreateThings < ActiveRecord::Migration[5.0]
def change
create_table :things do |t|
t.string :name
t.text :description
t.timestamps
end
end
end
В противном случае правильный подход к получению правильного местного времени будет
Time.zone.now
. Вы можете получить полный список поддерживаемых часовых поясов с помощью
ActiveSupport::TimeZone.zones_map(&:name)
Документация по часовым поясам , краткое изложение о дате, времени и часовых поясах в Ruby on Rails.