2014-08-28 27 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