Factory_girl_rails и формат даты postgres - PullRequest
2 голосов
/ 20 ноября 2011

Как мне отформатировать дату, чтобы поместить ее на фабрику factory_girl_rails, например:

Factory.define(:profile) do |t|
  t.length 110
  t.shipdate 1993-04-06
end

Если это имеет значение, я использую postgresql и factory_girl_rails 1.0. Я получаю сообщение об ошибке: ActiveRecord::StatementInvalid: PGError: ERROR: invalid input syntax for type date: "1982" Версия rails: 3.1

.

Ответы [ 2 ]

2 голосов
/ 20 ноября 2011

Вам не хватает кавычек вокруг строки даты:

Factory.define(:profile) do |t|
  t.length 110
  t.shipdate '1993-04-06'
end

1993 минус 4 - 1989, 1989 минус 6 - 1983. Вы уверены, что правильно скопировали сообщение об ошибке?

2 голосов
/ 20 ноября 2011

Сообщение об ошибке сообщает нам, что вы пытались записать строку '1982' в поле даты, что явно недопустимо.Для даты тоже нужны месяц и день.

Если вы продолжаете вводить данные такого рода, вы можете обработать их с помощью to_date(), что может иметь смысл:

SELECT to_date('1982', 'YYYY-MM-DD')

Результат:

1982-01-01

Существует пара настроек, которые влияют на обработку значений даты / времени , наиболее важно DateStyle.Однако явное приведение с to_date() работает независимо.

...