Paginación en Ruby on Rails

Paginación de una colección de objetos con will_paginate

Para paginar resultados en Ruby on Rails podemos usar el plugin o gem Will_paginate.

El uso de este plugin es muy sencillo y nos permite paginar cualquier colección de elementos obtenidos de un modelo.

Instalación de la gem WILL_PAGINATE

Para instalar la gem podemos usar el siguiente comando

sudo gem install will_paginate

Si queremos usar el plugin en vez de la gem podemos descargar el código desde github

Controlador

En el controlador es donde debemos definir los parámetros de paginación y los elementos que queremos paginar. En Rails 3 podemos definirlo de la siguiente forma:

@comments = Comment
  .where(:condicion_ejemplo => 1)
  .order("created_at DESC")
  .paginate(:page => params[:page]), :per_page => 10)

En versiones anteriores de Rails podemos usar la instrucción find() en vez de where().

Vista

En la vista donde queramos colocar el paginador podemos usar el siguiente comando, pasándole por parámetro la colección de objetos paginados.

<%= will_paginate(@comentarios) %>