【问题标题】:Create line chart grouped by two fields创建按两个字段分组的折线图
【发布时间】:2023-04-02 04:54:01
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: ruby-on-rails chartkick


    【解决方案1】:

    这应该可行。

    我使用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 %>
    

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 2023-01-13
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多