我有一个显示订单的屏幕,我想显示一些计数,以便快速方便地报告。
我已经算出我可以通过
得到所有订单的计数<%= 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)