Je crée une application développée personnellement, et je pense qu'elle sera plus facile à utiliser si vous pouvez la voir dans l'ordre des publications populaires, En gros, je l'ai implémenté en faisant référence à cet article.
routes.rb
routes.rb
get 'rank' => 'shops#rank'
Dans mon cas, je l'ai défini sur l'action de rang du contrôleur de magasins.
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
Définissez la méthode de classement dans le contrôleur de magasins. Afficher dans l'ordre des articles avec le plus de likes.
rank.html.slim
ruby: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?
Créez un fichier de vue et affichez-le. Extrait à titre d'exemple. Après cela, modifiez l'apparence avec CSS.
python
@all_ranks.each.with_index(1) do |shop, i|
À partir de ce qui précède, vous pouvez afficher dans l'ordre décroissant des likes.
L'affichage au format de classement a été réalisé facilement.
Recommended Posts