我有一张交易表,需要查找日期与当天日期相符的记录。查找符合今日日期的日期时间记录 - 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