Order dans une pagination


#1

Bonjour,

Je rencontre actuellement un problème pour trier correctement un
resultset avec pagination.

En fait j’utilise ceci :

@source_pages, @sources = paginate :sources, :per_page => 10,
:conditions => ‘…’, :include => ‘…’,:order => ‘total_ratings desc’

Mais rails crée toujours une requête SQL qui me fait un order sur
sources.id AVANT total_ratings …

Mes résultats sont donc toujours triés d’abord sur l’ID et puis
seulement sur ma colonne.

Je pense (j’en suis presque certain) que cela vient du paginate, mais je
ne vois vraiment pas comment éviter le problème ? Si vous avez une
solution ?

Merci


#2

Essaye peut-être de t’inspirer de la section “custom pagination” sur
cette page du wiki :
http://wiki.rubyonrails.com/rails/pages/HowtoPagination
Elle explique comment obtenir plus de souplesse pour construire la
collection d’objets à paginer.

Bernard D.


#3

Salut Vincenzo,

Tu devrais regarder par ici : http://errtheblog.com/post/929

Un paginateur correctement codé pour rails, ça vient de sortir.

np

Le 10 févr. 07 à 14:01, Bernard D. a écrit :


#4

Salut à tous,

Je viens de chercher encore un petit temps et j’ai trouvé qu’il s’agit
en fait d’un bug :

http://dev.rubyonrails.org/ticket/4668

Par contre je ne sais pas comment je peux le régler, ils en parlent mais
donnent pas d’explication claire sur comment régler ou contourner le
problème.

Vous avec une idée ? Comment peut-on appliquer ce genre de “PATCH” ?

Merci.