Стандартный подход, как вы определили, заключается в получении N + 1 записей, когда вам нужно N, и если в ответ вы получаете больше N записей, есть как минимум одна дополнительная страница результатов, которую вы можете отобразить.
Единственная причина, по которой вы хотите сделать явный вызов COUNT(*)
, заключается в том, что вам нужно точно знать, сколько еще записей вам нужно будет извлечь.На некоторых движках это может занять много времени для вычислений, поэтому лучше избегать этого, особенно если значение никогда не используется напрямую.
Поскольку это так просто, вам действительно не нужен плагин для этого,Плагины типа will_paginate
больше заботятся о количестве доступных страниц, поэтому они выполняют операцию подсчета.