2010-05-01 8 views
5

Sto usando will_paginate come standard, ma mostra solo i controlli di impaginazione (< 1 2> ecc.) Quando c'è più di una pagina da visualizzare. Normalmente, questo sarebbe ciò che si desidera, ma voglio vedere i controlli di impaginazione (per la coerenza dell'interfaccia utente e per aggirare un fastidioso inconveniente CSS nel sistema su cui sto lavorando) anche quando è visualizzata solo una pagina (che mostra < 1 >).Mostrare l'impaginazione con una sola pagina usando will_paginate

È possibile?

risposta

5

L'aiutante di default will_paginate restituisce nil quando v'è una sola pagina, in modo che si possa fare qualcosa di simile:

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

questo si sente un po 'sporca per me - forse perché deve essere ripetuta per ogni pagina che ha impaginazione. Sfortunatamente, è davvero l'unica buona soluzione. WillPaginate rende determinante il rendering basato su 'WillPaginate :: ViewHelpers.total_pages_for_collection', che non puoi modificare senza influire negativamente sul comportamento del plug-in. Immagino che se hai bisogno di farlo per molte pagine impaginate, puoi estrarlo in un metodo di supporto: 'def paginate_always (records); will_paginate (records) || some_html; FINE'. –

+0

Questo è un modo più pulito per farlo - grazie mille! :) –

Problemi correlati