如何构建rails分析面板



我希望在rails应用程序中为我的数据构建一个分析面板。

假设我有一个请求类型列表"Fizz","Buzz","Bang","Bar"。

我想根据类型显示每天的计数。

我该怎么做?

以下是我的计划:

  1. 将get_bazz_by_day、get_fizz_by_day等添加到适当的模型中
  2. 在每个模型中,获取Fizz类型的所有记录,然后创建一个存储日期和计数的数组
  3. 视图中的格式,以便JS库可以将其格式化为漂亮的图形

这听起来合理吗?

根据记录的数量,您的仪表板很快就会出现性能问题。

步骤1具有误导性。不要单独获取每天的数据,尽量一次获取所有数据。

在步骤2中,您可以让数据库使用group方法在几天内进行聚合。

请参阅http://guides.rubyonrails.org/active_record_querying.html#group

Fizz.select("date(created_at) as fizzed_day, count(*) as day_count").
     group("date(created_at)")

在步骤3中,您需要注意没有任何气泡的天数仍然显示,因为它们不会在查询中返回。

最新更新