Переопределение Rails плагин mislav-will_paginate - PullRequest
1 голос
/ 20 августа 2009

Я работаю с плагином Rails mislav-will_paginate, чтобы разбить мои записи на страницы. Я хочу произвести следующий вывод, независимо от того, было ли несколько страниц:

X - Y of Z
1 - 100 of 1826

will_paginate в WillPaginate :: ViewHelpers возвращает ноль, если была только одна страница записей. Я хочу переопределить это самым чистым возможным способом, чтобы получить вышеуказанный вывод, если была только одна страница, или вышеупомянутый вывод, окруженный обычным выводом, если было несколько страниц.

Я переопределил метод to_html WillPaginate :: LinkRenderer для создания этого вывода, но я не могу понять, как его создать, если есть только одна страница записей.

Должен ли я переместить код для создания X - Y of Z куда-нибудь еще и вызвать его как из моего переопределенного метода to_html, так и из того места, где я делаю свой вызов will_paginate, если он возвращает nil? Если так, где он должен жить?

1 Ответ

1 голос
/ 25 августа 2009

Хорошо, вот что я сделал:

  • Создан модуль Paginator
  • Включен модуль Paginator в помощник моей модели
  • На мой взгляд называется Paginator.paginate
  • Определен Paginator.paginate для вызова Paginator.produce_totals, если была только одна страница, или для вызова will_paginate (нормального метода) для нескольких страниц
  • Определен Paginator.produce_totals для вывода итоговых значений "X - Y of Z", как указано выше
  • Включен модуль Paginator в мой класс переопределения WillPaginate :: LinkRenderer
  • Вызывается Paginator.produce_totals в соответствующей точке моего переопределенного метода to_html

Уф! Можете опубликовать код, если он кому-нибудь пригодится - просто спросите.

...