0

我有这个查询:

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 循环中更有效地对日期进行排序的更好方法?

4

1 回答 1

1

您可以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 }
于 2013-09-25T11:43:32.867 回答