LoginSignup
0
0

More than 1 year has passed since last update.

【Rails】投稿をいいねされた順で表示する

Posted at

目的

投稿をいいねされた順番で表示する。

開発環境

macOS: Big Sur
Rubyバージョン: 2.6.5
Railsバージョン: 6.0.0

前提

方法

方法は単純で、全投稿をいいねされた数が多い順で並びかえることが出来ればOKです!
今回はsortを使用しました!

app/controllers/posts_controller.rb
def index
#省略
  like_posts = Post.includes(:liked_users).sort {|a,b| b.liked_users.length <=> a.liked_users.length}
  @like_posts = like_posts.first(3)
end

今回は、いいねされた数が多いTOP3投稿までを表示したかったため、@like_posts = like_posts.first(3)と記述し、
並び替えた後の最初の3投稿を取得しています。

全投稿表示する場合は、@like_posts = like_posts.first(3)の記述はいりません。

最後に

並び替えまではスムーズにできましたが、その後の3投稿のみを取得する方法に手間取りました。
探したところ、同じような記事が無かったため誰かの参考になれば幸いです。
では。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0