创建按两个字段分组的折线图

时间:2018-08-14 22:11:52

标签: ruby-on-rails chartkick

我正在尝试使用Chartkick建立折线图,以显示卖家在几天内的销售数量,但是我不知道该怎么做。

我已经在表格中使用以下代码显示卖家名称和您的销售额:

@sales = Sale.where(created_at: DateTime.current.beginning_of_month..DateTime.current.end_of_month)

@sales_seller = @sales.joins(:user).select("user_id, COUNT(sales.id) AS total").group('user_id')

这将返回:

+--------+-------+
|  Name  | Total |
+--------+-------+
| Jack   |    10 |
| Kevin  |     3 |
| Andrea |    11 |
+--------+-------+

但是我不知道如何在这种情况下放置sales.created_at

我的模特

销售

belongs_to :user

用户(卖方)

has_many :sales

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

这应该有效。

我使用num_of_sales作为包含销售数量的sales列,您必须根据您的Sale模型对其进行修复:

data = @user.joins(:sales).select('users.name as name, sales.num_of_sales').group(:name).sum(:num_of_sales)

按用户名分组,但最好按user_id分组。

要过滤销售,只需链接一个where方法:

data = @user.joins(:sales).where(.....).select(.....

然后您可以使用以下命令绘制线条:

<%= line_chart data %>