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

时间:2016-10-01 23:07:46

标签: ruby-on-rails sqlite ruby-on-rails-4 activerecord chartkick

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

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

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

额外名称分组的整体购买订单或冰淇淋的计数。

在另一个表达式中,最后一个图表旨在显示最常用的额外客户消费。

graphs.html.erb

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

图表实际上有效,但我不能&#39;让它显示额外名称,甚至按额外名称分组。

 Chart indexes **Extras** by its ID

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

  • 如何能够显示额外名称而不是ID?

1 个答案:

答案 0 :(得分:1)

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

IceCreams.joins(added_extras: :extra).group('extras.name').count
相关问题