按轨道中的相关记录对记录进行分组和计数

时间:2017-08-31 04:13:58

标签: ruby-on-rails activerecord

class JobPosition < AR
  belongs_to :recruiter, class_name: 'User'
end

class User < AR
  # first_name, last_name
end

招聘人员(或更确切地说,用户)可以附加到许多工作岗位。我想了解每个招聘人员分配的申请数量。这很容易通过

JobPosition.group(:recruiter_id).count

返回每个招聘人员ID的计数。

{
  1 => 3,
  2 => 5
}

但是我不想要招聘人员的身份,而是招聘人员全名如此

{
  "Peter Henry" => 3,
  "Hugh Kavener" => 5
}

我在users表上没有full_name列,但确实有first_name和last_name。

如何使用 PG和ActiveRecord 实现此目的。我宁愿不去操纵内存中的活动记录对象。

1 个答案:

答案 0 :(得分:0)

你可以通过编写一些额外的SQL来实现,我相信以下语法应该适用于postgresql:

JobPosition.joins(:recruiters).group("user.first_name || ' ' || user.last_name").count