Rails ActiveRecord запрашивает выбор объекта по количеству связанных объектов [дубликаты]

У меня есть две модели:

# game.rb

has_many :players, class_name: 'User'

и

# user.rb`

belongs_to :game

Я хочу сделать Game.includes(:players).select { |game| game.players.count == 1 } Game.includes(:players).select { |game| game.players.count == 1 } с запросом AR, не могли бы вы посоветовать? Заранее спасибо!

Всего 1 ответ


Рельсы 3, получающие количество записей, имеющих более одной ассоциированной записи (has_many), должны вам помочь. Решение, которое они дают:

Account.joins(:users).select('accounts.id').group('accounts.id').having('count(users.id) > 1')

В вашем случае попробуйте:

Game.joins(:players).select('games.id').group('games.id').having('count(users.id) = 1')