Сохранить текущее время и дату в Ruby On Rails - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь сохранить текущее время и дату в моей базе данных mysql с помощью этой строки кода:

DateTime.now

, но когда я сохраняю их в своей базе данных, а затем просматриваю, я получаю следующее:

2018-12-06 00:18:46

Я думаю, что время не подходит, и это влияет на дату.Как я мог решить это?

1 Ответ

0 голосов
/ 06 декабря 2018

По умолчанию 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...