2010-05-01 10 views
5

Estoy usando will_paginate como estándar, pero solo muestra los controles de paginación (< 1 2> etc.) cuando hay más de una página para mostrar. Normalmente, esto sería lo que se quiere, pero quiero ver los controles de paginación (para la coherencia de UI y para resolver una peculiaridad de CSS molesta en el sistema en el que estoy trabajando) incluso cuando solo hay 1 página para mostrar (que muestra < 1 >).Mostrando paginación con una sola página usando will_paginate

¿Esto es posible?

Respuesta

5

El ayudante will_paginate predeterminada devuelve nil cuando sólo hay una página, por lo que podría hacer algo como esto:

<%= will_paginate(@records) || your_single_page_state_html %> 
+1

Esto se siente un poco sucio a mí - posiblemente debido a que necesita ser repetido para cada página eso tiene paginación Desafortunadamente, es realmente la única buena solución. WillPaginate hace su determinación de renderizar basado en 'WillPaginate :: ViewHelpers.total_pages_for_collection', que no puede cambiar sin afectar adversamente el comportamiento del plugin. Supongo que si necesitas hacer esto para muchas páginas paginadas, puedes extraerlo en un método de ayuda: 'def paginate_always (records); will_paginate (registros) || some_html; fin'. –

+0

Esa es una manera más limpia de hacer esto, ¡muchas gracias! :) –

Cuestiones relacionadas