Considérez l'association suivanteActive Record association à deux niveaux et le groupe par le nombre
Entreprises
has_many: departments
Départements
belongs_to: company
has_many: employees
employés
belongs_to: department
Tenir compte des données d'exemple suivantes
entreprises
+------------+--------------+
| company_id | company_name |
+------------+--------------+
| 1 | Company A |
| 2 | Company B |
+------------+--------------+
Départements
+---------------+------------+-----------------+
| department_id | company_id | department_name |
+---------------+------------+-----------------+
| 1 | 1 | Administration |
| 2 | 1 | Development |
| 3 | 1 | Designing |
+---------------+------------+-----------------+
employés
+-------------+---------------+---------------+----------------+
| employee_id | department_id | employee_name | employee_grade |
+-------------+---------------+---------------+----------------+
| 1 | 1 | EmpA | grade1 |
| 2 | 1 | EmpB | grade1 |
| 3 | 2 | EmpC | grade1 |
| 4 | 2 | EmpD | grade2 |
+-------------+---------------+---------------+----------------+
Y a-t-il un seul paquebot dans RoR pour trouver le nombre d'employés d'une entreprise, appartient à chaque grade? à savoir si company_id est égal à 1, la sortie est comme suit
+--------+-------+
| grade | count |
+--------+-------+
| grade1 | 3 |
| grade2 | 1 |
+--------+-------+
Une façon j'ai essayé est d'obtenir les services de l'entreprise, puis en boucle à travers elle, récupérer le nombre d'employés regroupés de qualité pour chaque département et additionnez les compteurs . Est-ce qu'il y a un autre moyen?