Ruby on rails ActiveRecord:通过模型按数量分组

Ruby on rails ActiveRecord:通过模型按数量分组,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,考虑到这些课程 class Account < ApplicationRecord has_many :team_memberships has_many :follow_ups, through: :team_memberships end class TeamMembership < ApplicationRecord belongs_to :account has_many :follow_ups end class FollowUp < Applic

考虑到这些课程

class Account < ApplicationRecord
  has_many :team_memberships
  has_many :follow_ups, through: :team_memberships
end

class TeamMembership < ApplicationRecord
  belongs_to :account
  has_many :follow_ups
end

class FollowUp < ApplicationRecord
  belongs_to :team_membership
  has_one :account, through: :team_membership
end
但是什么才是正确的ActiveRecord查询呢

在ActiveRecord中查询以获取具有多个未完成后续操作的所有帐户

只需将
后续操作
加入
账户
并通过
后续操作过滤即可解决此问题。在
完成:

Account.joins(:follow_ups).where(follow_ups: { completed_at: nil })
如果您需要不完整的
跟进次数
大于特定的次数,则
分组方式
拥有
可能会有帮助:

Account
  .joins(:follow_ups)
  .where(follow_ups: { completed_at: nil })
  .group(:id)
  .having("COUNT(follow_ups.id) > 1")
在ActiveRecord中查询以获取具有多个未完成后续操作的所有帐户

只需将
后续操作
加入
账户
并通过
后续操作过滤即可解决此问题。在
完成:

Account.joins(:follow_ups).where(follow_ups: { completed_at: nil })
如果您需要不完整的
跟进次数
大于特定的次数,则
分组方式
拥有
可能会有帮助:

Account
  .joins(:follow_ups)
  .where(follow_ups: { completed_at: nil })
  .group(:id)
  .having("COUNT(follow_ups.id) > 1")

这很接近,但我需要有多个未完成跟进的账户。@jayqui然后分组并拥有可能会帮助您(更新我的答案)这很接近,但我需要有多个未完成跟进的账户。@jayqui然后分组并拥有可能会帮助您(更新我的答案)