[Ror-es] paginate_by_sql
Sergio Gil Pérez de la Manga
sgilperez at gmail.com
Mon Apr 2 15:27:53 GMT 2007
On 4/2/07, Jaime Iniesta <jaime at railes.net> wrote:
>
> Hola!
>
> Tengo una lista [1] paginada con el método tradicional (paginate), pero me
> gustaría poder ordenarla por un campo que no está directamente en el modelo
> paginado. Me explico. Estoy listando paginados los "watchers", que a su vez
> están enlazados con las "paginas" a través de pagina_id. Son las paginas las
> que tienen los campos "address" y "pagerank", así que en este listado se
> muestra en plan
>
> <% for watcher in @watchers %>
>
> <%= watcher.pagina.address %> - <%= watcher.pagina.pagerank %> <br />
>
> <% end %>
>
> Total, que me gustaría ordenar el listado por watcher.pagina.address o
> watcher.pagina.pagerank pero paginate solo me permitirá ordenarlo por
> campos del modelo watcher...
>
> Por lo que he visto, para esto existe paginate_by_sql [2], pero no forma
> parte de Rails, así que lo tengo que incorporar a mi aplicación... ¿Es así?
> ¿Existe una solución mejor?
>
> Gracias!
>
> [1] http://www.pagerankalert.com/watchers/list
> [2]
> http://thebogles.com/blog/2006/06/paginate_by_sql-for-rails-a-more-general-approach/
>
No lo he probado pero me imagino que funcionará; si al find le metes un
include podrías ordenar por un campo del otro modelo (aunque no podrás usar
el clásico paginate, creo, sí podrás usar el método aún más clásico de
instanciar el Paginator. Algo como
Watcher.find(:all, :include => :pagina, :order => 'paginas.address', ...)
Cuéntanos si funciona =;-)
--
Sergio Gil Pérez de la Manga
e-mail > sgilperez at gmail.com
blog > http://www.lacoctelera.com/porras
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20070402/5288de68/attachment-0001.htm
More information about the Ror-es
mailing list