2012-04-12 52 views

回答

1

我認爲你應該將has_one :article更改爲has_many :articles

所以我的版本:

Category.joins(:articles) 
     .select("categories.*, count(articles.id) as counter") 
     .order("counter") 
+0

我的應用程序上運行的PostgreSQL,所以我不得不更新一點查詢:'Category.joins(:文章)。 。選擇(「類別*,COUNT( articles.id)as counter「) group('categories.id')。order(」counter DESC,name「)'。問題是,如果我在文章表中有'category_id' ** 2 **(例如「Sport」),** 2 **(例如「Sport」)和** 3 **(例如「新聞「),所以查詢打印在第一個位置**運動**與2項和2 - 10.定位其餘,並且每個類別已打印1個項目。這怎麼可能? **體育**應該有2個項目,**新聞** 1項和其餘0. – user984621 2012-04-13 08:18:21

+0

我不明白你要什麼。編輯你的問題來澄清你想要的東西。 – megas 2012-04-13 13:17:03