44 votes

Comment remplacer: ordre défini dans un has_many

j'ai

 class Authors 
has_many :books, :order => 'name ASC'
 

J'essaie d'interroger tous les livres classés par nom DESC

 Authors.books.order('name DESC')
 

mais le résultat est

 SELECT * FROM .... ORDER BY name ASC, name DESC
 

et les résultats reviennent avec le nom ASC trié

existe-t-il un moyen de supprimer l'ordre d'origine dans l'association ou de le remplacer? Ou est-ce que spécifier une commande dans une relation est une mauvaise idée?

en utilisant Rails 3.0.3

100voto

Ariejan Points 6567
Authors.books.reorder('name DESC')

35voto

Jon Points 251

.reorder() a été déprécié dans Rails 3.0.3 au profit de .except(:order).order()

Alors utilisez ceci:

 Authors.books.except(:order).order('name DESC')
 

-1voto

Subba Rao Points 2117
Author.first.books.reverse_order

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X