будет разбивка на страницы — передача в переменной массива

#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.