我如何加入Rails

时间:2014-02-23 22:48:06

标签: ruby-on-rails rails-activerecord

我有以下

a Category - belongs_to :item
a Item - has_one :category

项目有category_id。如何编写查询以生成包含每个类别的项目数的摘要?

CategoryA - 15
CategoryB - 20
CategoryC - 25

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,您的关联设置错误。它应该是

Category has_many :items
Item belongs_to :category

然后,要获得每个类别的项目数,您可以

Category.joins(:items).group("category_id").count

这将为您提供一个哈希,其键为category_id,值为项目数

例如:

{<category_id_1> => 12, <category_id> => 40}

如果您希望密钥为名称

,也可以按category_name进行分组