#ruby-on-rails #will-paginate
#ruby-on-rails #разбиение на страницы
Вопрос:
У меня есть очень конкретный список элементов, которые я хотел бы разбить на страницы.
До сих пор я делал
@company = Company.paginate( :page => params[:page],
:conditions => ["activated=1... etc..."],
:per_page => 6,
:order => order_by)
Но я хотел бы создать свой собственный массив @company, который невозможно было бы получить с помощью одного запроса .. и затем разбить его на страницы. Как я могу передать необработанный массив в will_paginate?
Спасибо…
Ответ №1:
При загрузке will_paginate расширяет все массивы с помощью paginate
метода:
ruby-1.9.2-p180 :014 > [].respond_to?(:paginate)
=> true
Вы можете просто создать свой экземпляр массива, как хотите, и вызвать paginate
на нем.
Комментарии:
1. так ты имеешь в виду… допустим, у меня есть переменная @companies.. тогда я просто вызываю @company.paginate(:страница => страница, :per_page => 6)? я попробую это!
Ответ №2:
Вызовите paginate
метод для массива.
a = [1,2,3,4,5]
a.paginate(:page => 1, :per_page => 2)
=> [1,2]
a.paginate(:page => 2, :per_page => 2)
=> [3,4]
a.paginate(:page => 3, :per_page => 2)
=> [5]
Ссылка: Array
расширение в will_paginate
исходном коде gem.