9
Biorąc pod uwagę sytuację, jak: Company
has_many Users
Szyny zapytania grupa/mający/Ilość
aby uzyskać firmy, które mają 3 użytkowników, to działa sprawnie:
Company.joins(:users).group("companies.id").having("COUNT(users.id)=3")
Ale co jest najbardziej skuteczny sposób, aby uzyskać Firmy, które mają 0 użytkowników (brak)? Bo, oczywiście, to samo podejście nie działa (jak joins
z definicji wyklucza spółek z 0 użytkowników):
Company.joins(:users).group("companies.id").having("COUNT(users.id)=0")
Myślę, że można to uprościć, używając opcji "zawiera" zamiast "połączeń". Podobnie jak: Company.includes (: users) .group ("companies.id"). Posiadające ("COUNT (users.id) = 0") – miguelfg