LoginSignup
1
0

More than 3 years have passed since last update.

【Rails】人気投稿をランキング形式で表示させる

Last updated at Posted at 2020-10-16

個人開発アプリを作成していて、人気投稿順に見られると使いやすくなると思い、
基本的にこちらの記事を参考にしながら実装しました。

routes.rb

routes.rb
get 'rank' => 'shops#rank'

私の場合はshopsコントローラーのrankアクションに設定しました。

shops_controller.rb

shops_controller.rb
 def rank
    @all_ranks = Shop.find(Favorite.group(:id).order('count(shop_id) desc').limit(5).pluck(:shop_id))
 end

shopsコントローラーにrankメソッドを定義。いいねが多い投稿順に表示させます。

rank.html.slim

rank.html.slim
- @all_ranks.each.with_index(1) do |shop, i|
  h5.col-md-5
    .card.shadow
      | No.
      = i
      | 
       = link_to shop.name, shop_path(shop)
       = link_to((image_tag shop.picture.url), shop_path(shop.id), class: 'shop-picture') if shop.picture.url.present?

viewファイルを作成し、表示させます。例として抜粋しました。
後はCSSで外観を修正します。

@all_ranks.each.with_index(1) do |shop, i|

上記より、いいねが多い順に表示させることができます。

完成

お手軽にランク形式での表示が完成しました。

1
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
1
0