2014-08-28 46 views
0

新手警报...轨道4,返回查询数据和总数

例如: 我有表的作用和表用户 角色的has_many用户

在轨道4,5

,我可以展示所有角色中只有1个查询到数据库的每个角色中的total_users数量? 因此,在角色的每个记录中有1个额外的列称为total_users,total_users是从用户数“where users”算起。“role_id”=“roles”。“id”

我尝试了很多次, ,我试过了:

roles = Role.joins(:users).group("roles.id").count 

它只是count的返回值。 我想要的是,查询的返回值既是角色中的所有数据,也是单个查询中用户的数量。

这是我希望的结果:

[#<Role id: 1, holding_company_id: 1, name: "admin", created_at: nil, updated_at: nil, description: nil, **total_users: ...** >, #<Role id: 2, holding_company_id: 2, name: "user", created_at: nil, updated_at: nil, description: nil, **total_users: ...**>] 

任何人都可以帮我这个非常简单的问题?我用postgreSQL

回答

0

你应该保留这两个结果在单独的变量。

roles = Role.joins(:users).group("roles.id") 

roles_count = roles.count 

因为角色包含表行数组,而count数值为单值,所以应该单独保留。

,如果你把两个单对象难以处理的值

+0

所以在最后,有没有其他办法可以TOTAL_USERS合并到角色表的阵列? – azy 2014-08-28 06:12:37