私は取引のテーブルを持っており、今日の日付と日付が一致するレコードを見つける必要があります。今日の日付と一致する日時を持つレコードを見つける - Ruby on Rails
レールコンソールから、一致する必要がある日付フィールドは次のようになります。私はテストのためにレコードを割り当てました。
ruby-1.9.2-p0 > deal.start
=> Tue, 10 May 2011 00:00:00 UTC +00:00
私はこのように、今日で開始日に一致するレコードを検索しようとすると、私はその後、私はdatetime型にDate.todayを変換することで一致すると考えていた
ruby-1.9.2-p0 > Deal.find_by_start(Date.today)
=> nil
nilを取得します。
ruby-1.9.2-p0 > Date.today.to_datetime
=> Tue, 10 May 2011 00:00:00 +0000
ruby-1.9.2-p0 > Deal.find_by_start(Date.today.to_datetime)
=> nil
これを動作させるにはどうすればよいですか?私はRailsの3を使用してい
編集: 私は作品がなく、日時が保持している
ruby-1.9.2-p0 > deal.start.strftime("%a, %e %B %Y") == Date.today.strftime("%a, %e %B %Y")
=> true
ruby-1.9.2-p0 > Deal.find_by_start.strftime("%a, %e %B %Y") == Date.today.strftime("%a, %e %B %Y")
NoMethodError: undefined method `strftime' for nil:NilClass
ありがとうございます。これはうまくいきますし、短期間にこれを使用し、パフォーマンス改善のために自分のコードをリファクタリングします。ご協力いただきありがとうございます。 –
範囲を使用するより簡潔なバージョンもあります。 @deals = Deal.where(開始:DateTime.now.beginning_of_day .. DateTime.now.end_of_day) –
「Deal.where(start:Time.zone.now.midnight)」も機能しています。 –