Rails 5 用户任务数排名

Rails 5 ranking of users by number of tasks

我有 2 个模型用户和任务

User -> has_many :tasks
Task -> belongs_to :user

我想按任务数量对用户进行排名

预期输出:

[['jhon', 120],['peter', 115],['mary', 101],....]

我的尝试:

User.left_joins(:tasks).group(:id).order('count(tasks.id)').limit(20) ---> not working, can't get the user name

将您的查询更新为

User.left_joins(:tasks).group(:id).select('users.name, count(tasks.id) as tasks_count').order('tasks_count DESC').limit(20).map{ |user| [user.name, user.tasks_count] }