Ich habe eine Tabelle mit Geschäften und muss Datensätze finden, bei denen das Datum mit dem heutigen Datum übereinstimmt.
In der Rails-Konsole sieht das Datumsfeld, das ich abgleichen muss, wie folgt aus. Ich habe einen Datensatz zum Testen zugewiesen.
ruby-1.9.2-p0 > deal.start
=> Tue, 10 May 2011 00:00:00 UTC +00:00
Wenn ich versuche, Datensätze zu finden, die das Startdatum mit dem heutigen Tag übereinstimmen, erhalte ich null
ruby-1.9.2-p0 > Deal.find_by_start(Date.today)
=> nil
dann dachte ich, ich könnte durch die Konvertierung von Date.today in eine Datetime übereinstimmen.
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
Wie kann ich das zum Laufen bringen? Ich verwende Rails 3.
Bearbeiten: Ich dachte darüber nach, beide in ein einheitliches Format zu konvertieren, das funktioniert, aber nicht, wenn ich versuche, die find_by_start-Methode zu verwenden
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