group_byを使用しているアクティブレコードクエリがあります
@foo = Foo.group_by(&:relation)
次に、私が使用しているビューで
@foo.each do |group, values|
group x has values.count elements
end
各グループの数でこれらを並べ替える方法はありますか?
group_byを使用しているアクティブレコードクエリがあります
@foo = Foo.group_by(&:relation)
次に、私が使用しているビューで
@foo.each do |group, values|
group x has values.count elements
end
各グループの数でこれらを並べ替える方法はありますか?
group_by は ActiveRecord メソッドではなく、group です。group_by は Enumerator メソッドです。
どうですか
@foo = Foo.group('relation').order('count_id asc').count('id')
「group by」カウントの「Order by」結果から取られた?.
それ以外の場合、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]]]