6 Stimmen

Verwendung von will_paginate ohne :total_entries zur Verbesserung einer langen Abfrage

Ich habe eine aktuelle Implementierung von will_paginieren die den paginieren_nach_sql Methode, um die zu paginierende Sammlung zu erstellen. Wir haben eine benutzerdefinierte Abfrage für total_einträge Das ist sehr kompliziert und belastet unsere DB stark. Deshalb möchten wir total_entries ganz aus der Paginierung herausnehmen.

Mit anderen Worten, anstelle der typischen Seitenumbruchanzeige "vorheriges 1 [2] 3 4 5 nächstes" möchten wir einfach nur eine Schaltfläche "nächstes - vorheriges". Aber wir müssen ein paar Dinge wissen.

  1. Wird der vorherige Link angezeigt? Dies wäre natürlich nur der Fall, wenn die Datensätze vor den in der aktuellen Auswahl angezeigten Datensätzen existieren
  2. Wird der nächste Link angezeigt? Dies würde nicht angezeigt werden, wenn der letzte Datensatz in der Sammlung angezeigt wird

De la docs

Eine Abfrage zum Zählen von Zeilen wird automatisch generiert, wenn Sie nicht :total_entries angeben. Wenn Sie Probleme mit dieser generierten SQL-Abfrage haben, sollten Sie die Zählung manuell in Ihrer Anwendung durchführen.

Im Idealfall sieht die Situation also folgendermaßen aus.

  • Entfernen Sie die Zählung von total_entries, da sie zu viel Last auf der Datenbank verursacht
  • Anzeige von 50 Datensätzen auf einmal mit Semi-Paginierung, wobei nur die Schaltflächen "Vor" und "Zurück" zum Navigieren verwendet werden und nicht alle verfügbaren Seitenzahlen angezeigt werden müssen
  • Nur die nächste Taste und die vorherige Taste entsprechend anzeigen

Hat jemand mit einem ähnlichen Problem gearbeitet oder hat eine Idee für eine Lösung?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X