Я использую календарь js, который вставляет строку в текстовое поле для представления в качестве значения даты и времени. Не уверен, если это имеет значение, но я использую SQLite на данный момент.Как установить формат даты в Rails
Я устанавливаю формат следующим образом (в инициализаторе):
Time::DATE_FORMATS[:default] = '%m/%d/%Y %H:%M'
Time::DATE_FORMATS[:db] = '%m/%d/%Y %H:%M'
Это не работает, потому что Rails, по-видимому проверки даты, используя другой формат.
Например, если установить его следующим образом:
myobject.my_datetime = '06/30/2012 00:00'
он заканчивает нуль (в SQL запрос сам сгенерированный ActiveRecord устанавливает его в NULL). Если я установил его на день, меньший или равный 12, то дата вернется правильно (но сгенерированный SQL-запрос по-прежнему показывает строку с днем до месяца, т. Е. В приведенном выше примере SQL-запрос имеет строку как '30/06/2012 05: 00: 000000 ').
Как вы можете видеть, это также добавляет 5 часов для UTC (?), Хотя у меня есть config.time_zone, установленный в восточное время.
Поведение одинаково либо с консоли, либо с помощью отправки формы.
Любые предложения по поводу того, что мне не хватает?
UPDATE:
Когда я последовать совету JDoe и сделать это:
myobject.my_datetime = Time.strptime ('06/30/2012 8:00' , «% м /% d /% Y% H:% M ')
Сформированный запрос теперь выглядит правильно (без учета разницы в 4 часа):
UPDATE "myjoin_table" SET "my_datetime" = '06/30/2012 04:00.000000' .....
и завершаться в базе данных таким образом.
Но когда я перезагружаю объект, значение в объекте AR инициализируется нулем.
Я предполагаю, что я просто разбираю строку по частям в своем действии контроллера и вручную задаю параметры update_attributes. Это сложнее, чем должно быть.
Теперь я понимаю, что настройка конфигурации предназначена только для показа. Я не получаю строку от пользователя. Я включил только достаточную информацию для описания проблемы, которая воспроизводится на консоли, передавая строку, аналогичную тому, как моя форма это делает (продолжение). –
Пожалуйста, ознакомьтесь с вопросом обновления. –
@KenThompson См. UPD для примера использования. – jdoe