Изменить формат даты по умолчанию на% Y% m% d% H% M% S - PullRequest
0 голосов
/ 02 декабря 2010

Я использую рельсы 3 и хочу изменить формат даты по умолчанию для create_at и updated_at, когда я сохраню их в БД.

Формат даты по умолчанию: %Y-%m-%d %H:%M:%S, но Я хотел бы, чтобы это было %Y%m%d%H%M%S

Где мне изменить формат? Я пытаюсь создать time_formats.rb в папке инициализатора.

Вот содержание:

class TimeFormats
  Time::DATE_FORMATS[:db] = "%Y%m%d%H%M%S"
  Time::DATE_FORMATS[:default] = "%Y%m%d%H%M%S"
end

Это не работает. Есть кто-то, кто может мне помочь? Спасибо.

Ответы [ 2 ]

2 голосов
/ 02 декабря 2010

Форматы времени и даты, которые вы определяете в инициализаторах, применяются только при преобразовании их в строки в Ruby.Определенные вами форматы будут использоваться как Time.now.to_s(:default).

. Я не рекомендую (и я не знаю, как это сделать), чтобы изменить порядок хранения дат в базе данных.Вам следует разрешить базе данных хранить их, как это делается по умолчанию, а затем изменить способ их форматирования в представлениях, используя .to_s(:format), как определено в инициализаторах.

0 голосов
/ 02 декабря 2010

Обычно база данных хранит временные метки в виде определенного типа времени, а не форматированной строки. Если вы просто хотите, чтобы стиль печати меток времени по умолчанию был другим, вы можете попробовать переопределить методы create_at и updated_at:

  def updated_at
    super.strftime("%Y%m%d%H%M%S") 
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...