rescue true

4 mayo, 2010

Will Paginate: Ir a la ultima página con elementos (out of bounds?)

En mis últimos proyectos uso el plugin (ahora gema) ‘will paginate‘ para la paginación de listados. Uno de los problemas que nos encontramos es cuando el listado tiene, por ejemplo, 4 paginas y el usuario intenta ir a la página 5. Esto ocurre normalmente cuando se borra el último elemento de una página.

El propio will_paginate nos ofrece una función para este tipo de casos y su aplicación es bastante trivial.

per_page = 10
@noticias = @noticias.paginate :page => params[:page], :per_page => per_page
@noticias = @noticias.paginate :page => @noticias.page_count, :per_page => per_page if @noticias.out_of_bounds? and @noticias.total_entries > 0

La idea es bastante sencilla. Paginamos por primera vez normal, y, en caso de que la página que nos devuelve el paginate este fuera de los limites (out_of_bounds ) y exista algun elemento (total_entries > 0) volvemos a paginar usando como parametro de página la ultima página con entradas (page_count).

Espero que haya quedado claro! Un saludo.

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: