私はAppointment
モデルを持っています。特定の予定では、start_time
の12:15 amのデータを保存しました。これを見てください:Railsでの日付の保存とクエリに関する問題
irb(main):002:0> a = Appointment.find(15)
=> #<Appointment id: 15, start_time: "2011-03-05 05:15:00", created_at: "2011-03-05 03:42:03", updated_at: "2011-03-05 03:42:03", stylist_id: 13, client_id: 8>
irb(main):003:0> a.start_time
=> Sat, 05 Mar 2011 00:15:00 EST -05:00
ご覧のとおり、日付が間違って保存されました。面白いことに、Railsはデータが戻ってきたときにそれを補う。
私のアプリは常にこのように動作しており、気づかなかったと思います。しかし、最近では、SQLを使って日付を取り出すクエリが書かれているので、間違った時刻になってしまい、問題が発生しています。
誰もが、なぜこれが起こっているのか、問題を回避するために何ができるのかを明らかにすることはできますか?
日付の最後に「UTC」を追加するとうまくいきました。ありがとう。 –
これに代わる方法として、データベース内のデータを変更する必要がある場合は、ActiveRecordをローカル時間を使用するように構成することができます。これによりデータベースに「正しい」時間が保存され、あなたのアプリ。 – MDaubs
@ mdaubs..uはいつもそのための関数を書くことができ、必要に応じて呼び出すことができます。 – rubyprince