如何在ActiveRecord查询中对作为哈希返回的数据进行排序?

时间:2013-09-25 11:26:31

标签: ruby-on-rails ruby sorting activerecord

我有这个问题:

Model.where(
  'user_id = ? AND created_at > ? AND created_at < ?',
  current_user.id, date1, date2
).group(:something1).count

返回:

{257=>1, 264=>2}

根据我需要获得的最高值:

{264=>2, 257=>1}

我可以在循环中对数据进行排序,但这不是很有效。有没有办法直接从查询中获取排序数据?或者,有没有比Ruby循环更有效地对日期进行排序的方法?

1 个答案:

答案 0 :(得分:0)

您可以在生成的哈希上使用sort_by,例如:

Model.where('user_id = ? AND created_at > ? AND created_at < ?', current_user.id, date1, date2).group(:something1).count.sort_by { |k, v| v }