рельсы 3, пагинация Kaminari для простого массива - PullRequest
33 голосов
/ 01 июля 2011

Для разбиения на страницы общего массива я получил это решение,

@ arr_name = Kaminari.paginate_array (@arr_name) .page (params [: page]). Per (PER_PAGE_RECORDS)

PER_PAGE_RECORDS - это переменная со значением, необходимым для нумерации страниц.

Любые лучшие идеи ??

Также для вызова ajax для использования нумерации страниц можно использовать это,

По вашему мнению,

дайте идентификатор вашей вкладке div

div id="paginate"

и внутри нее

<% = paginate @arr_name,: remote => true%>

И в файл ответов js положить,

$ ('# paginate'). html ('<% = escape_javascript (paginate (@arr_name,: remote => true) .to_s)%> ');

Поэтому ваши запросы будут AJAX.

Спасибо.

1 Ответ

64 голосов
/ 12 марта 2012

Это единственный доступный вспомогательный метод для разбивки на объекты массива с помощью Kaminari. Другой вариант, как предложено в вики-странице kaminari , добавить методы экземпляра в объект массива.

Если вы пытаетесь найти общее решение, основанное на типе возвращаемого значения ActiveModel (.all возвращает массив, а .where возвращает ARL), то следующее решение - это обходной путь.

unless @arr_name.kind_of?(Array)
  @arr_name = @arr_name.page(params[:page]).per(PER_PAGE_RECORDS)
else
  @arr_name = Kaminari.paginate_array(@arr_name).page(params[:page]).per(PER_PAGE_RECORDS)
end
...