Tengo una implementación actual de will_paginate que utiliza el método de paginate_by_sql para construir la colección para ser paginado. Tenemos una consulta personalizada para total_entries que es muy complicada y pone una gran carga en nuestro DB. Por lo tanto, nos gustaría cortar totales_entradas de la paginación por completo.will_paginate sin: total_entries para mejorar una consulta larga
En otras palabras, en lugar de la típica visualización de paginación de 'anterior 1 [2] 3 4 5 siguiente', simplemente nos gustaría un botón 'siguiente - anterior' solamente. Pero necesitamos saber algunas cosas.
- ¿Mostramos el enlace precedente? Esto solo ocurriría por supuesto si los registros existentes antes de los que se muestran en la selección actual
- ¿Mostramos el siguiente enlace? Esto no se mostrará si el último registro de la colección se muestra
Desde el docs
se se generará automáticamente una consulta para contar las filas si no se proporciona : total_entries. Si tiene problemas de experiencia con este SQL generado , es posible que desee realizar el recuento manualmente en la aplicación .
Así que en última instancia, la situación ideal es la siguiente.
- Eliminar cuentan los total_entries porque está causando demasiada carga en la base de datos
- Mostrar 50 registros a la vez con semi-paginación utilizando únicamente siguiente/botones anterior de navegar y no tener que visualizar todos los números de página disponibles
- Sólo mostrar el botón siguiente y en consecuencia botón anterior
alguien ha trabajado con un problema similar o tiene pensamientos sobre una resolución?
Gracias por la idea. Voy a piratear y ver qué puedo inventar. Tengo que lidiar con algunas largas consultas SQL personalizadas, pero creo que debería poder ponerlas a trabajar en la solución y tener una idea de cómo será el rendimiento. ¡Gracias! – mwilliams
Gracias por responder. Agradable y simplista, y miré mucho más allá de una solución tan simple. La mayor parte de mi implementación está en su lugar y parece mucho mejor. Aunque estoy teniendo problemas con los botones siguiente/anterior, pero lo haré lo suficientemente rápido. ¡Gracias de nuevo! – mwilliams