我的屏幕上有我们的订单,我希望显示一些快速简便的报告。
我已经知道我可以通过
来计算所有订单<%= Order.count(:all) %>
我还想显示特定日期范围内的一些计数,例如“今天”,“昨天”,“本周”,“本月”,“上个月”,“今年”等。
我对rails非常陌生,最近从PHP开始实现了飞跃,所以我仍然习惯了Rails的做事方式。我们使用Rails 3和ActiveRecord来查询数据库。实现这一目标的最佳方式是什么?
谢谢!
答案 0 :(得分:2)
看看这个例子。您可以将条件传递给count方法。
Person.count(:conditions => "age > 26")
Order.count(:conditions => "created_at BETWEEN '2010-09-29' AND '2010-11-30'")
答案 1 :(得分:1)
首先,您不应在视图中使用查找程序(或任何逻辑)。相反,将count作为订单模型的类方法,或将其作为范围。而且,在Rails 3上,最好使用新的语法(对于你的计数也一样):
Order.find(...).all
现在,您可以使用Rails模型的created_at属性来执行您想要的操作。然后,您只需要执行以下操作:
Order.where("created_at > ?", 2.days.ago.to_date)