用户has_many徽章通过badge_awardings
我能做到
@user.badges.count(:group => 'badges.id')
返回一个ids的哈希并计算如下
{1=>2, 2=>1, 5=>1, 8=>1}
但是我必须再次单独找到徽章才能显示它们。
有没有返回徽章及其数量的哈希?
答案 0 :(得分:0)
你可以在另一步获得徽章:
badge_count = @user.badges.count(:group => 'badges.id')
badges = Badge.find(badge_count.keys)
badges_counted = badges.inject({}){ |h, v| h.update(v => badge_count[v.id]) }
答案 1 :(得分:0)
您可以尝试以下方式:
@user.badges.count(:group => [:id, :some_column_name, :another_column_name])
这会让你:
{[1, 'something', 'other_thing']=>2, [2, 'a', 'b']=>1, ...}