gpt4 book ai didi

ruby - 按组大小排列的 Active Record 顺序

转载 作者:数据小太阳 更新时间:2023-10-29 07:05:46 24 4
gpt4 key购买 nike

我有一个正在使用 group_by 的事件记录查询

@foo = Foo.group_by(&:relation)

然后在我正在使用的 View 中

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

有没有一种方法可以根据每组的数量对这些进行排序?

最佳答案

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

怎么样

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

取自"Order by" result of "group by" count? .

否则,如果您想在 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]]]

关于ruby - 按组大小排列的 Active Record 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11857904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com