私のRails Webアプリケーション(Rails 3.2.9
、Ruby 1.9.3
)には、作成したすべての記事がリストされる各ユーザー固有の記事ダッシュボードページがあります。記事が掲載されるべき主なカテゴリがいくつかあります。商品詳細はテーブル構造で表示されます。 Rails Active Record Query - '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の第4条ので、カテゴリー1は、その後、カテゴリー2など
二番目のルールは、カテゴリの下の記事はDでupdated_atの値に基づいて をソートしなければならないということですESC命令。
@articles =
@current_user.articles.order('updated_at DESC').paginate(page: params[:page], per_page: 10)
Aアップデートされた最新記事を持っているカテゴリーは、他のカテゴリの記事に比べて小さいupdated_at
値を有する物品を持つことができるので、このクエリでは、意図した順序で結果を得ることができません。しかし最新の更新された記事とカテゴリ1の他の記事は上にリストされるなどです。
@articles =
@current_user.articles.order('category_id, updated_at DESC').paginate(page: params[:page], per_page: 10)
上記は、category_idに基づいて最初にソートされるため、使用できません。
誰も私に最適化されたMySQLクエリを手伝ってもらえますか?ありがとうございました。ここで
あなたが探しているものを正確に明らかにすれば、私は助けようとしますが、あなたはタイムスタンプにかかわらず、最新の記事を最初に表示し、同じカテゴリのすべての記事を表示したいのですか? – bkunzi01
カテゴリと記事のアクティブレコードクラスを追加してください –