J'essaie de faire une requête plus avancée avec activerecord et ne peux pas trouver la meilleure façon de l'écrire. Espérons que cela a du sens ...Requête avancée activeecord où l'association avec une limite
Mes POSTGRES/Rails app a des modèles:
Company has_many :employees
Employee has_many :evaluations
Evaluations a colonne décimales: score. Je veux obtenir les 10 scores d'évaluation les plus bas pour une entreprise par son nom. MAIS je veux aussi seulement tirer un score le plus bas de chaque employé. Je ne souhaite pas que 5 des 10 scores de ma liste de résultats proviennent tous du même ID d'employé.
Je:
@list = Company.where(:name => 'Google').joins(:evaluations)
Mais je me bats avec la façon de limiter les évaluations à une faible valeur unique sur une seule employee.id
Quelle est la meilleure façon de le faire?
Peut-être 'Company.where (: name => 'Google'). Joint (: évaluations) .minimum ('evaluations.value')'? pas sûr si fonctionne – fotanus
Votre question demande plus d'explications, que voulez-vous dire quand vous dites «Je veux aussi seulement tirer un score le plus bas de chaque employé. Je ne veux pas que 5 des 10 scores de ma liste de résultats proviennent tous du même ID d'employé. »Voulez-vous le score le plus bas pour chaque employé de l'entreprise, ou voulez-vous le score d'évaluation des 10 employés le plus bas? pour une entreprise, de sorte que chaque note d'évaluation des employés provient d'un employé distinct? –
Votre dernière phrase est ce que je veux ... Je veux tirer les 10 meilleurs scores des employés distincts. –