[RUBY] Comment implémenter la fonctionnalité de classement dans Rails

Auparavant, j'avais implémenté la fonction de classement en me référant à cet article de Qiita ( Fonction de classement facile dans Rails ). était. J'ai pu l'implémenter avec succès, mais j'ai rencontré les problèmes suivants.

Cela ne fonctionne pas lorsqu'il est combiné avec la fonction de pagination de kaminari!

@posts = Post.find(Like.group(:post_id).order('count(post_id) desc').pluck(:post_id)).page(params[:page])

Lorsqu'il est combiné avec la méthode de page de kaminari, ce sera comme ci-dessus, mais cela provoquera l'erreur suivante. スクリーンショット 2020-08-04 16.58.47.png

Par conséquent, nous allons introduire la fonction de classement qui peut être combinée avec la méthode de page sans aucun problème.

supposition

--Le nom de table de l'article est posts ――Le nom de table des likes est likes

Implémentation de la fonction de classement

@posts = Post.joins(:likes).group(:post_id).order('count(post_id) desc')

C'est acceptable! Je vais expliquer un par un.

Post.joins(:likes)  #Inner rejoindre les postes et aime les tables
group(:post_id)  #post_Divisez les groupes en ceux qui ont le même identifiant
order('count(post_id) desc')  #Publiez-le_Trier par ordre décroissant d'ID

Ceci termine la fonction de classement. Comme indiqué ci-dessous, l'ajout de la méthode de page à la fin du code ne provoque pas d'erreur et je pense que la fonction de nation de page fonctionne.

@posts = Post.joins(:likes).group(:post_id).order('count(post_id) desc').page(params[:page])

Les références

--Fonction de classement facile avec Rails
https://qiita.com/mitsumitsu1128/items/18fa5e49a27e727f00b4

Recommended Posts

Comment implémenter la fonctionnalité de classement dans Rails
Comment implémenter la fonctionnalité de recherche dans Rails
[Rails] Comment mettre en œuvre le scraping
Comment implémenter la connexion invité en 5 minutes sur le portefeuille de rails
Comment implémenter une fonctionnalité intéressante dans Ajax avec Rails
Introduire la conception avec Rails pour implémenter la fonctionnalité de gestion des utilisateurs
Comment installer jQuery dans Rails 6
[Rails] Comment mettre en œuvre le classement par étoiles
Comment installer Swiper in Rails
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
Comment changer le nom de l'application dans les rails
Comment insérer une vidéo dans Rails
Comment utiliser MySQL dans le didacticiel Rails
Comment appliquer les conventions de codage en Java
[rails] Comment configurer le routage dans les ressources
Pour implémenter la publication d'images à l'aide de rails
Comment implémenter le traitement asynchrone dans Outsystems
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Comment écrire des rails
Comment désinstaller Rails
Markdown implémenté dans Rails
Comment traduire Rails en japonais en général
[Rails] Comment implémenter un test unitaire d'un modèle
Comment séparer .scss par contrôleur dans Rails
Comment ajouter conditionnellement une classe html.erb dans Rails
Comment créer facilement un pull-down avec des rails
Comment utiliser JQuery dans Rails 6 js.erb
Comment implémenter le verrouillage optimiste dans l'API REST
[Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant
Comment vérifier les commandes Rails dans le terminal
Comment implémenter la pagination dans GraphQL (pour ruby)
Comment mettre en œuvre un diaporama en utilisant Slick in Rails (un par un et plusieurs par un)
Implémenter la fonction d'application dans Rails
Comment implémenter UICollectionView avec du code uniquement dans Swift
[rails] Comment publier des images
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
[Ruby on Rails] Comment écrire enum en japonais
[Rails] Comment utiliser enum
[Rails, JS] Comment implémenter l'affichage asynchrone des commentaires
[Rails] Comment utiliser enum
Comment lire les itinéraires des rails
Implémenter l'authentification LTI dans Rails
[Ruby On Rails] Comment réinitialiser DB dans Heroku
Comment utiliser la jonction de rails
[Comment insérer une vidéo dans un hameau avec Rails]
Comment écrire une recherche de comparaison de dates dans Rails
Comment terminer le serveur de rails