[英]How to make order in group_by records query in rails
This is my current code 这是我当前的代码
cat = Category.select(:id, :name, :parent, :jobs_count).group_by{|p| p.parent}
cat.each do |parent, childs|
= parent
childs.each do |name|
= name.name
end
end
the results of this are, 结果是
Technology (The parent) 技术 (父级)
Now I want to order childs
records by jobs_count
, I am trying to do it using the code below, 现在,我想按jobs_count
排序childs
记录,我正在尝试使用下面的代码来实现,
childs.order(jobs_count: :desc).each do |name|
Error:
=> undefined method `order' for #<Array:0x007f11cc08a2c0>
also like that into main query 也像这样进入主查询
Category.select(:id, :name, :parent, :jobs_count).group_by{|p| p.parent}.order(jobs_count: :desc)
Error:
#=> undefined method `order' for #<Array:0x007f11cc242e50>
It not working for me, how can I order the records by jobs_count
它对我不起作用,如何按jobs_count
排序记录
You can be using sort_by
method like on the childs.each
block like the following 您可以像在childs.each
块上一样使用sort_by
方法,如下所示
childs.sort_by{|j| - j.jobs_count }.each do |name|
So the full code is: 因此,完整的代码是:
cat.each do |parent, childs|
= parent
childs.sort_by{|j| - j.jobs_count }.each do |name|
= name.name
end
end
It should work. 它应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.