私は周りを見回しましたが、Date.yesterday クエリが機能しない理由がわかりません。
私は自分のモデルにこれを持っています:
scope :yesterday, lambda {
where('acctstarttime = ?', Time.now - 1.day)
}
そして、私は試しました
scope :yesterday, lambda {
where('acctstarttime = ?', (Time.now - 1.day).strftime('%Y-%m-%d'))
}
と...
scope :yesterday, lambda {
where('acctstarttime = ?', Date.yesterday)
}
次のような結果が得られます。
Radacct.yesterday.count
(440.1ms) SELECT COUNT(*) FROM `radacct` WHERE (acctstarttime like '2013-01-27 22:55:31')
(私もDate.yesterdayを試しました)
今日を使用すると、次のようになります。
Radacct.today.count
SELECT COUNT(*) FROM `radacct` WHERE (acctstarttime >= '2013-01-28')
=> 16,456
次のようにルックアップを変更すると、機能します。
Radacct.find(:all, :conditions => ["acctstarttime like ?", (Date.today-1).strftime('%Y-%m-%d')+ "%"]).count
私はただ疲れているだけですか、それとも複雑すぎますか? Rails 3でこれを達成するための最善かつ最短の方法は何ですか? 時間の面で行き詰まっているようです..