我有一張交易表,需要查找日期與當天日期相符的記錄。查找符合今日日期的日期時間記錄 - Ruby on Rails
從rails控制檯,我需要匹配的日期字段看起來像這樣。我已經分配了一個記錄來處理測試。
ruby-1.9.2-p0 > deal.start
=> Tue, 10 May 2011 00:00:00 UTC +00:00
如果我試圖找到匹配的開始日期與今天類似這樣的任何記錄,我得到零
ruby-1.9.2-p0 > Deal.find_by_start(Date.today)
=> nil
然後我想我可以通過Date.today轉換爲日期時間相匹配。
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
編輯: 我想過他們倆轉換爲將工作,但試圖使用find_by_start方法時不
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
謝謝。這很好,我將在短期內使用它,並着眼於重構我的代碼以提高性能。謝謝你的幫助。 – 2011-05-10 01:11:25
還有一個更簡潔的版本使用範圍。 @deals = Deal.where(start:DateTime.now.beginning_of_day .. DateTime.now.end_of_day) – 2013-10-26 13:54:47
我發現'Deal.where(start:Time.zone.now.midnight)'也適用。 – 2016-02-18 20:44:20