messaliberty

hulor と開発チームの最新情報

Archive for 10月, 2009

[Rails] ActiveRecord で DateTime を使う

10月 21st, 2009 投稿者: ice

ActiveRecord の :datetime は ruby Time class に対応してるんだけど、
ruby の Time class が 0001-01-01 00:00:00 とかの、かなり昔とか未来の日付に対応してない。
(ActiveRecord が 0001-01-01 00:00:00 を 2001:01:01 00:00:00 に変換してしまう)

なので ActiveRecord の :datetime 周りの処理を上書きして、DateTime class を使うようにする。

テスト環境:

  • Ubuntu 9.04
  • ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
  • rails 2.3.2 – 2.3.4
  • mysql Ver 14.12 Distrib 5.0.75, for debian-linux-gnu (i486) using readline 5.2

以下のコード active_record_datetime_ext.rb を RAILS_ROOT/config/initializers にコピーするだけ。
(続きを読む…)