j'ai une mise en œuvre actuelle de will_paginate qui utilise la méthode paginate_by_sql pour construire la collection à paginé. Nous avons une requête personnalisée pour total_entries c'est très compliqué et met une grande charge sur notre DB. Par conséquent, nous aimerions couper total_entries de la pagination complètement. En d 'autres termes, au lieu de l' affichage de pagination typique de 'précédent 1 [2] 3 4 5 suivant', nous aimerions simplement un bouton 'suivant - précédent' seulement. Mais nous devons savoir quelques choses.En utilisant will_paginate sans: total_entries pour améliorer une longue requête
- Est-ce que nous affichons le lien précédent? Cela ne se produirait bien sûr que si les enregistrements existaient avant ceux affichés dans la sélection en cours
- Montrons-nous le lien suivant? Ce ne serait pas affiché si le dernier enregistrement de la collection est affichée
De l'docs
Une requête pour les lignes de comptage sera généré automatiquement si vous ne fournissez pas : total_entries. Si vous rencontrez des problèmes avec ce généré SQL, vous voudrez peut-être effectuer le décompte manuellement dans votre application .
Donc finalement la situation idéale est la suivante.
- Supprimer les total_entries comptent parce que cela cause trop de charge sur la base de données
- Afficher 50 enregistrements à la fois avec demi-pagination en utilisant uniquement des boutons suivant/précédent pour naviguer et ne pas avoir besoin d'afficher tous les numéros de page disponibles
- afficher uniquement le bouton suivant et le bouton précédent en conséquence
quelqu'un at-il travaillé avec un problème similaire ou avoir des pensées sur une résolution?
Merci pour l'idée. Je vais me débrouiller et voir ce que je peux faire. J'ai de longues requêtes SQL personnalisées à traiter, mais je pense que je devrais être en mesure de les mettre en solution et d'avoir une idée de la performance. Merci! – mwilliams
Merci pour votre réponse. Sympa et simpliste et j'ai regardé bien au-delà d'une solution aussi simple. La plupart de ma mise en œuvre est en place et semble déjà beaucoup mieux. Bien que je rencontre des problèmes avec les boutons suivants/précédents, mais je vais l'obtenir assez tôt. Merci encore! – mwilliams