railsで投稿数ランキングの作成
作るもの
- rails
- 質問への回答数の多い人ランキング
全体像
Post(質問)に対してAnswer(回答)をするのですが、この回答数が多いユーザーをランキング形式で表示したい。
仕様
この記事を参考に作っていった
Like.group(:note_id)#まず、記事の番号(note_id)が同じものにグループを分ける
order('count(note_id) desc')#それを、番号の多い順に並び替える
limit(3)#表示する最大数を3個に指定する
pluck(:note_id)#そして最後に:note_idカラムのみを数字で取り出すように指定。
こんな感じにgroup化して並べていき、配列として渡す。
配列にnilがある場合を考慮
ただ上記のコードだと配列として渡したuser_idを聞きに行ったときにnilだった場合にfindなのでエラーが出る。そこでwhereで抽出。idをpluckで配列で渡してその配列をwhereで順番に抽出していく。
@ranking_users = User.where(id: Answer.group(:user_id).order('count(user_id) desc').limit(3).pluck(:user_id))
Author And Source
この問題について(railsで投稿数ランキングの作成), 我々は、より多くの情報をここで見つけました https://qiita.com/you8/items/753e578c9a277cb7443c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .