这个问题

Message.where("message_type = ?", "incoming").group("sender_number").count

我会还给我一份杂烩.

OrderedHash {"1234"=>21, "2345"=>11, "3456"=>63, "4568"=>100}

现在我想按每组的数量来订购.如何在查询中做到这一点.

推荐答案

最简单的方法就是在原始查询中添加一个order子句.如果给count方法指定一个特定字段,它将生成一个名为count_{column}的输出列,该列可以在通过添加订单调用生成的sql中使用:

Message.where('message_type = ?','incoming')
       .group('sender_number')
       .order('count_id asc').count('id')

Ruby-on-rails相关问答推荐

Rails 7.1,登录到STDOUT和LOG/Production.log

为什么没有生成命名空间路由?

根据表单内的 Select 字段值渲染部分内容

如何验证 Rails 中的多态字段关联?

Rails 7 共享刺激控制器功能

如何在 Rails 中声明动态路由范围/命名空间变量?

Rails simple_form 元素与数据-... 刺激的属性?

带有 simple_form 的按钮内的 HTML 代码

如何在 Rails 3 中使用 Capybara 单击具有相同文本的第二个链接?

设计:手动加密密码并直接存储

基于 2 列定义唯一主键

用 url_for 查询参数?

RSpec 设置会话对象

在 Rails 中,如何处理多个选中的复选框,只需拆分 , 或?

Rails 助手应该假设实例变量存在还是应该将它们作为参数接收?

Rails 4网站图标问题

使用回形针调整图像大小

如何在 Ruby 中生成随机日期?

导轨链接到:远程

Post.all.map(&:id) 是什么意思?