【问题标题】:Rails 5 ranking of users by number of tasksRails 5 按任务数量对用户进行排名
【发布时间】:2020-08-04 13:45:24
【问题描述】:

我有 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

【问题讨论】:

    标签: ruby-on-rails ruby activerecord ruby-on-rails-5.2


    【解决方案1】:

    将您的查询更新为

    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] }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-03
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多