2010-05-01 3 views
5

Ich benutze will_paginate als Standard, aber es zeigt nur die Paginierung Kontrollen (< 1 2> etc), wenn mehr als eine Seite angezeigt werden soll. Normalerweise wäre dies das, was gewünscht wird, aber ich möchte die Paginierungssteuerelemente sehen (für die UI-Konsistenz und um eine nervige CSS-Eigenart in dem System zu umgehen, an dem ich gerade arbeite), selbst wenn nur eine Seite angezeigt werden soll (< 1) >).Paginierung mit nur einer Seite anzeigen unter Verwendung von will_paginate

Ist das möglich?

Antwort

5

Der Standard will_paginate Helfer kehrt nil, wenn nur eine Seite ist, so dass Sie etwas tun könnte:

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

Das fühlt sich ein wenig schmutzig - möglicherweise, weil es für jede Seite wiederholt werden muss das hat Paginierung. Leider ist es wirklich die einzige gute Lösung. WillPaginate macht seine Entscheidung, basierend auf 'WillPaginate :: ViewHelpers.total_pages_for_collection' zu rendern, was Sie nicht ändern können, ohne das Verhalten des Plugins zu beeinträchtigen. Ich denke, wenn Sie dies für viele paginierte Seiten tun müssen, können Sie es in eine Hilfsmethode extrahieren: 'def paginate_always (records); will_paginate (Datensätze) || etwas_html; Ende. –

+0

Das ist ein sauberer Weg - vielen Dank! :) –