У меня есть текущая реализация will_paginate, который использует paginate_by_sql метода для создания коллекции быть разбитыми на страницы. У нас есть пользовательский запрос для total_entries, который очень сложный и накладывает большую нагрузку на нашу БД. Поэтому мы хотели бы полностью вырезать total_entries из разбивки на страницы.Использование will_paginate без: total_entries улучшить длинный запрос
Другими словами, вместо типичного отображения постраничного отображения «предыдущий 1 [2] 3 4 5 следующий» мы просто хотели бы только «следующий - предыдущий». Но нам нужно знать кое-что.
- Отображается ли предыдущая ссылка? Это произойдет, конечно, только если записи, существующие до тех, которые отображаются в текущем выборе
- Отобразится ли следующая ссылка? Это не будет отображаться, если последняя запись в коллекции отображается
От docs
Запрос для подсчета строк будет автоматически генерируется, если вы не поставляем: total_entries. Если вы столкнулись с , возникли проблемы с созданным SQL-кодом , вы можете захотеть, чтобы выполнял счет вручную в вашем приложении .
Так что в конечном итоге идеальная ситуация заключается в следующем.
- Удалить отсчитывать total_entries, потому что он вызывает слишком большую нагрузку на базу данных
- Показать 50 записей в то время, с полу-пагинацией использованием только следующей/предыдущей кнопки для навигации и не нуждаясь, чтобы отобразить все номера страниц, доступных
- только отобразить следующую кнопку и предыдущую кнопку соответственно
кто-нибудь работал с подобным вопросом или мысли о разрешении?
Спасибо за идею. Я собираюсь взломать и посмотреть, что я могу придумать. У меня есть некоторые длинные пользовательские SQL-запросы для решения, но я думаю, что я должен был бы заставить их работать в решении и получить представление о том, как будет работать. Благодаря! – mwilliams
Спасибо за ответ. Ницца и упрощение, и я смотрел за пределы такого простого решения. Большая часть моей реализации уже создана и кажется намного лучше. Хотя у меня проблемы со следующими/предыдущими кнопками, но я скоро заработаю. Еще раз спасибо! – mwilliams