在我的Rails web應用程序(Rails 3.2.9
,Ruby 1.9.3
)中,有一個文章儀表板頁面,特定於每個用戶,他/她創建的所有文章都被列出。有一些主要類別下文章應列出。文章詳細信息顯示在表格結構中。Rails活動記錄查詢 - 分類,基於'updated_at'值排序
Sl# Name Reference Updated At
Category 1
1 Article 1 abc abc 05/16/2016 11:12AM
2 Article 2 pqr stu 05/14/2016 10:11PM
3 Article 3 abc abc 05/13/2016 05:05AM
Category 2
4 Article 4 abc abc 05/16/2016 11:00AM
5 Article 5 pqr stu 05/15/2016 06:41PM
Category 3
6 Article 6 abc abc 05/16/2016 10:12AM
7 Article 7 pqr stu 05/01/2016 09:52PM
8 Article 8 abc abc 05/12/2016 12:05PM
因此,該用戶創建了8篇文章,稱爲'Ramu',它們分爲3類。文章可以隨時更新。第一條規則是,
它具有最新更新的文章類別需要在 頂部,因此所顯示在
所以,在這裏你可以看到的Category 1
Article 1
已經更新了最新的和然後分類2.所以,第1類,那麼分類2等的第4條
第二條規則是,在一類文章應基於在d的值的updated_at進行排序 ESC順序。
@articles =
@current_user.articles.order('updated_at DESC').paginate(page: params[:page], per_page: 10)
此查詢不能得到預期的順序的結果,因爲它有一個最新更新的文章類別能夠具有較小updated_at
價值相對於其他類別的文章文章。但最新的更新文章以及第1類的其他文章將列在最上面等等。
@articles =
@current_user.articles.order('category_id, updated_at DESC').paginate(page: params[:page], per_page: 10)
以上也是不可用的,因爲它首先根據category_id進行排序。
任何人都可以請幫助我得到一個優化的MySQL查詢。謝謝。
如果您明確說明您要找的內容,我會盡力幫助,但是我從中得到了什麼最遠的是,你希望最新的文章先顯示,然後是同一類別的所有文章,而不管他們的時間戳嗎? – bkunzi01
請爲類別和文章添加您的Active Record類 –