6

我有一个活动记录查询,我正在使用 group_by

@foo = Foo.group_by(&:relation)

然后在我正在使用的视图中

@foo.each do |group, values|
 group x has values.count elements
end

有没有办法按每组的数量对这些进行排序?

4

1 回答 1

7

group_by 不是 ActiveRecord 方法, group 是。group_by 是一个枚举器方法。

关于什么

@foo = Foo.group('relation').order('count_id asc').count('id')

取自“分组依据”计数的“排序依据”结果?.

否则,如果你想在 Ruby 级别对其进行排序,你可以这样做

disordered_hash = {:two=>[1, 2], :one=>[1], :three=>[1, 2, 3]}
ordered_array = disordered_hash.sort {|k, v| k[1].count <=> v[1].count} # add .reverse if you want
# => [[:one, [1]], [:two, [1, 2]], [:three, [1, 2, 3]]]
于 2012-08-08T05:14:09.363 回答