0
我有以下语句返回10个最高项目。使用ActiveRecord按字母顺序对10个最高项目进行排序
Timesheet.joins(:project).select('projects.name as name, SUM(value) AS Minutes').group('projects.name').order('Minutes DESC').limit(10)
如何按字母顺序排列它们?我试图在声明后面放置.order('name'),但这不起作用。
你试过用“sort_by(&:name)”结束这个吗?它不会在查询中排序,而是使用ruby Enumerable#sort_by排序。 (对不起,没有在我的手机键盘上打勾) – engineersmnky 2014-09-20 01:20:25
Try:'Timesheet.joins(:project).select('projects.name as project_name,SUM(value)AS minutes')。group('projects.name')。order (:project_name =>:asc,:minutes =>:desc).limit(10)' – Surya 2014-09-20 06:14:36
@engineersmnky很好,如果你把它作为答案添加,我会将它标记为这样。 Surya不起作用,因为它会产生一个查询,不会按照价值取10个最高项目,而只是按字母顺序排列的前10个项目。 – rept 2014-09-20 09:52:19