【发布时间】:2011-05-10 00:22:32
【问题描述】:
我有一个交易表,需要查找日期与今天匹配的记录。
在 Rails 控制台中,我需要匹配的日期字段如下所示。我已经指定了一个记录来处理测试。
ruby-1.9.2-p0 > deal.start
=> Tue, 10 May 2011 00:00:00 UTC +00:00
如果我像这样尝试查找与今天匹配的开始日期的任何记录,我会得到 nil
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
【问题讨论】:
标签: ruby-on-rails ruby