Cette question est peut-être un peu spécifique, mais je pense qu'elle est également intéressante d'un point de vue général.
Dans une application Rails, les utilisateurs peuvent s'abonner à d'autres utilisateurs. Lorsque je montre une liste d'utilisateurs, je dois vérifier si l'utilisateur actuel s'est abonné aux utilisateurs de la liste. S'il s'est abonné, je montre le bouton de désabonnement et inversement.
Parce que tout dépend de l'utilisateur actuel, je ne peux pas utiliser le chargement anticipé. Donc quand je montre 20 utilisateurs dans la liste, je génère 20 requêtes supplémentaires à la base de données, ce qui me semble être une mauvaise pratique.
Je réfléchis à une bonne façon de résoudre ce problème. La meilleure solution à laquelle j'ai pensé jusqu'à présent est de charger les identifiants des utilisateurs auxquels le current_user s'est abonné dans la session lors de la connexion une fois et ensuite simplement vérifier chaque user.id par rapport aux identifiants dans la session. Mais cela pourrait peut-être entraîner d'autres problèmes lorsque l'utilisateur s'est abonné à beaucoup de personnes. De plus, je ne suis pas sûr que ce soit la meilleure façon de charger toutes les abonnements même si l'utilisateur ne regarde peut-être jamais la liste des utilisateurs pendant cette session.
La deuxième meilleure solution qui m'est venue à l'esprit serait de faire la même chose, mais pas lors de la connexion mais plutôt lorsque la liste d'utilisateurs est chargée.
Qu'en penses-tu?