Rails & SQLite3: несоответствие даты - PullRequest
1 голос
/ 25 апреля 2009

Rails возвращает неверную дату из записей в моей базе данных. Для моей модели («Цель»), если я запускаю в скрипте / консоли:

Target.find :all

Я получаю все свои записи с датой чтения поля «записанный_он» из " 2000-01-01 xx: xx: xx".

Если я беру ту же базу данных и запускаю в консоли sqlite3:

SELECT * FROM targets;

Я получаю все свои записи с датами чтения в поле «записанный_он» из « 2009-04-22 xx: xx: xx», которые являются правильными датами.

Значения времени между двумя значениями кажутся правильными, только значения даты отключены.

Что происходит?

1 Ответ

0 голосов
/ 25 апреля 2009

Надежный перевод времени между рельсами и вашей базой данных зависит от множества рельсов и конфигурации базы данных voodoo, которые У меня не хватило терпения заняться .

Мое окончательное решение состояло в том, чтобы прекратить хранить значения времени как время в базе данных. Я храню целые:

Modelname.time_column = Time.now().to_i

(На самом деле, я делаю бит to_i в переопределении установщика атрибута и обращаюсь к процессу в получателе:)

Time.at(read_attribute(:time_column))

Это хак, но я доволен его простотой и тем, как просто было перемещать его между конфигурациями и машинами разработки.

Недостаток, конечно, в том, что sql выдает старомодный int, когда вы запрашиваете его. MySQL может иметь способы для преобразования, но я сомневаюсь, что SQLite будет.

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