Voici mon tableau: J'aimerais utiliser Des idées Comment je peux faire cela? P> P> group_by code> (je pense?) Pour regrouper les votes par user_id code > (que chaque vote a), puis renvoyez le user_id code> avec les votes les plus élevés. P>
3 Réponses :
Avez-vous essayé la méthode code> code>? vous donnera un Voici un exemple d'une application que j'ai pratique, où j'utilise le résultat du calcul pour trouver l'instance de modèle correcte et lire des propriétés à partir de celui-ci: p> hachage code> où les touches sont le user_id < / code> et les valeurs sont le nombre code>. Vous pouvez ensuite appeler max code> sur ce résultat pour obtenir un tableau à deux éléments contenant le user_id code> et le nombre comptent code>. P>
Si votre structure de table est comme: ceci doit renvoyer un tableau dans lequel le premier élément est l'user_id avec le plus de votes, le deuxième élément est le nombre de cet user_id. p>
Si vous n'avez pas besoin des autres entrées du vote (ne les utiliserez pas), il s'agit d'une manière très inefficace de le faire. Le meilleur moyen serait de saisir la ligne unique de la base de données contenant le bon utilisateur_id et leur compte (voir ma réponse).
Je pense que ce que vous voulez vraiment, c'est ceci:
Vote.select("votes.user_id, count(votes.id)").
where(:month => month, :year => year, :id => vote.id).
group("votes.user_id").
order("count(votes.id) DESC").
limit(1)