导轨:如何通过分组从关联表中选择字段并从结果创建哈希



我想创建一个活动的记录查询,并将结果存储在哈希中,其中包含相关表中的摘要信息,如下所示。

这是表格和关联:

Post belongs_to: category
Category has_many: posts

在这里,我想计算每个类别中的帖子#,并如下创建一个摘要表(带有所需表的SQL查询):

select c.name, count(p.id) from posts a left join categories c on p.category_id = c.id where p.status = 'Approved' group by (c.name) order by (c.name);
    Category   | count 
---------------+-------
 Basketball    |     2
 Football      |     3
 Hockey        |     4
(3 rows)

最后,我想将结果存储在哈希中,如下所示:

summary_hash = { 'Basketball' => 2, 'Football' => 3, 'Hockey' => 4 }

我将不胜感激您是否可以指导我如何编写活动记录查询并将结果存储在哈希中。

尝试

Post.where(status: 'Approved').joins(:category).
  select("categories.name").group("categories.name").count

最新更新