2010-05-01 2 views
5

В качестве стандарта я использую will_paginate, но он отображает только элементы управления разбиением на страницы (< 1 2> и т. Д.), Когда отображается более одной страницы. Обычно это будет то, что нужно, но я хочу видеть элементы управления pagination (для согласованности пользовательского интерфейса и обойти раздражающую причуду CSS в системе, над которой я работаю) даже при отображении только одной страницы (показывая < 1 >).Отображение разбиения на страницы только одной страницей с использованием will_paginate

Возможно ли это?

ответ

5

помощник will_paginate по умолчанию возвращает nil, когда есть только одна страница, так что вы могли бы сделать что-то вроде этого:

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

Это чувствует немного грязный для меня - возможно, потому, что нужно повторить для каждой страницы который имеет разбивку на страницы. К сожалению, это действительно единственное хорошее решение. WillPaginate делает свое решение для рендеринга на основе 'WillPaginate :: ViewHelpers.total_pages_for_collection', которое вы не можете изменить без ущерба для поведения плагина. Я думаю, если вам нужно сделать это для большого количества страниц с разбивкой на страницы, вы можете извлечь его в вспомогательный метод: 'def paginate_always (records); will_paginate (records) || some_html; end'. –

+0

Это более чистый способ сделать это - большое спасибо! :) –