ruby on rails 3 -如何获得特定时间段的结果计数



我有一个显示订单的屏幕,我想显示一些计数,以便快速方便地报告。

我已经算出我可以通过

得到所有订单的计数
<%= Order.count(:all) %>

我还想显示一些特定日期范围的计数,例如"今天"、"昨天"、"本周"、"本月"、"上个月"、"今年"等。

我对rails非常陌生,最近才从PHP跳到rails,所以我还在习惯rails的做事方式。我们使用Rails 3和ActiveRecord来查询数据库。实现这一目标的最佳方式是什么?

谢谢!

看这个例子。您可以将条件传递给count方法。

Person.count(:conditions => "age > 26")
Order.count(:conditions => "created_at BETWEEN '2010-09-29' AND '2010-11-30'")

API文档中的更多示例

首先,您不应该在视图中使用查找器(或任何逻辑)。相反,将count作为订单模型的类方法,或者将其设置为一个作用域。此外,在Rails 3中,最好使用新的语法(对您的计数相同):

Order.find(...).all

现在,您可以使用Rails模型的created_at属性来做您想做的事情。然后,您只需要执行如下操作:

Order.where("created_at > ?", 2.days.ago.to_date)

最新更新