Railsは、MySqlに正しくフォーマットされた日付時刻を自動的に挿入することで優れています。
ただし、検証を行うために、保存されたmysqlの日時値(つまり、2008-07-02 18:00:00)が「現在」よりも大きいか小さいかを確認する必要があります。 DateTime.now
またはTime.now
しかし、どうすればmysqlが好きな形式に変換できますか?
ありがとう
to_s(:db)
を使用して、データベースに適した形式に変換できます。
_Time.now.to_s(:db)
_
ただし、Rails)でタイムゾーンを指定している場合は注意してください。時刻はデータベースのUTCに格納されるため、適切に比較するために指定する必要があります。
_Time.now.utc.to_s(:db)
_
Rubyで現在の時刻を生成する代わりに、MySQLでNOW()
関数を使用することもできます。
する必要はありません。 Railsあなたのために仕事をさせましょう:
モデルがWidget
の場合、これは前日に作成されたすべてのウィジェットを検索します。
Thing.find(:all, :condition => ["created_at > ?", Time.now - 1.day])
Railsは自動的にタイムスタンプを正しい形式に変換します。