Will_paginate para un array

Hola a todos,

tengo un problemilla y no se como solucionarlo.
En mi aplicación saco varios listados en tablas y los he de paginar.
Antes usaba la paginación de rails:
@producto_pages, @productos = paginate_collection …

y ahora quiero hacerlo mediante el plugin will_paginate.

En los listados me funciona bien:
@products = Product.paginate(:all, :page => params[:page], per_page
=> 10)

el problema es que en estos listados tengo un buscador, y según las
búsquedas tengo que devolver los resultados también paginados. Se puede
hacer lo de @productos_paginate_by_sql(…), lo que pasa que no
siempre obtengo los resultados mediante la consulta sql, sino que a
veces saco dos consultas y sumo o resto los arrays, y luego devuelvo
todo esto. Lo que quería saber es si hay alguna manera para pagina un
array creado por mi ‘a mano’ o mediante alguna operación con tro array.
Por ejemplo:

@array = []
array1 = Product.find(:all)
array2 = Package.find(id).products
@array = aarra1 & array2

@array.paginate(params[:page], 10)

También he visto por alguna página que se puede ahcer algo como esto:
Array.class_eval do
def paginate(page=1, per_page=15)
pagination_array = WillPaginate::Collection.new(page, per_page,
self.size)
start_index = pagination_array.offset
end_index = start_index + (per_page - 1)
array_to_concat = self[start_index…end_index]
array_to_concat.nil? ? [] : pagination_array.concat(array_to_concat)
end
end

lo que pasa que no se ni cómo ni donde habría que gahcerlo, y si
realmente funciona.

Gracias de antemano por las respuestas

Un saludo

Buenas Carlos,

Si usas la gema en vez del plugin, ya incluye esta funcionalidad [1]

[1]
http://github.com/fuerstenberg/will_paginate/tree/master/lib/will_paginate/array.rb

Un saludo.

Carlos F. escribió: