2016-09-07 1 views
0

Ich habe zwei ModelleDesc Reihenfolge einer Join-Tabelle

categories (id, name, ....) 
users (id, name, ....) 
categories_users (category_id, user_id) 

ich die Top-5 Kategorien mit der Anzahl der Benutzer zugeordnet ziehen wollen. gerade benutze ich category.users.count, um die Nummer zu holen. Gibt es eine klügere Möglichkeit, dies im Handumdrehen zu berechnen und die besten Kategorien zu erhalten?

Antwort

2

Verwendungsgruppe:

cate_ids = CategoryUser.select("count(user_id) as user_count, category_id").group("category_id").order("user_count desc").limit(5).map(&:category_id) 
categories = Category.find(cate_ids) 
Verwandte Themen