如何按关系名称对记录进行分组?

How to group records, by a relation name?

我正在使用 Rails 4.2Chartkick & GroupDate gems,以显示有关购买订单的统计信息。

order.rb

  class Order < ActiveRecord::Base
    ...
    has_many :ice_creams
    ...
  end

ice_cream.rb

  class IceCream < ActiveRecord::Base
    ...
    has_and_belongs_to_many :flavors
    has_many :added_extras
    has_many :extras, :through => :added_extras
    belongs_to :order
    ...
  end

extra.rb

  class Extra < ActiveRecord::Base
    ...
    has_many :added_extras
    has_many :extras, :through => :added_extras
    ...
  end

我的目的是显示一个图表,显示以下内容:

演员姓名.

分组的 订单或冰淇淋 的总购买数量

换句话说,最后一个图表旨在显示最受欢迎的 Extras 客户消费。

graphs.html.erb

<%= line_chart IceCreams.all.joins(:added_extras).group(:extra_id).count  %>

图表确实有效,但我无法让它显示 Extra 名称,甚至无法按 Extra 名称分组。

无论如何我的问题是...

您可以通过 AddedExtra table 加入 Extra table。尝试以下:

IceCreams.joins(added_extras: :extra).group('extras.name').count