Trier dans l'Ordre Croissant des Rails
Salut j'ai ce modèle
De l'élément de modèle
class Inventory::Item < ActiveRecord::Base
has_many :types, :class_name => "ItemType"
attr_accessible :name
end
Modèle item_type
class Inventory::ItemType < ActiveRecord::Base
belongs_to :item
attr_accessible :number
end
alors disons que dans le contrôleur, je veux les types de tri (qui a de la classe ItemType) dans l'ordre croissant en fonction du nom. Comment dois-je faire?
Par exemple,
- ItemType nombre = 1 a Item name = Table
- ItemType nombre = 2 a nom de l'Élément = Président
- ItemType nombre = 3 a nom de l'Élément = Fenêtre
- ItemType nombre = 4 a nom de l'Élément = Ordinateur
Donc au lieu de faire le tri de nombre, je veux un tri basé sur l'article.nom(ASC) comme ceci:
- ItemType nombre = 2 a nom de l'Élément = Président
- ItemType nombre = 4 a nom de l'Élément = Ordinateur
- ItemType nombre = 1 a Item name = Table
- ItemType nombre = 3 a nom de l'Élément = Fenêtre
Vous devez vous connecter pour publier un commentaire.
Quelque chose comme cela devrait faire l'affaire...
Aussi, si vous devez pour ce faire, dans de nombreux endroits, vous pouvez accomplir la même chose en fournissant un
:order
paramètre à votrehas_many
appel, au lieu - http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many.Pour extraire des enregistrements de la base de données dans un ordre spécifique, vous pouvez utiliser le
ordre
méthode:par défaut, il trie dans l'ordre croissant.
Vous pouvez également définir l'ordre par défaut dans votre Modèle comme ceci:
Cela permettra de trier les éléments par item_name sans aucun changement dans le contrôleur de
Pour faire de l'ASC (tri par Défaut est le mode de nom de type de champs (Alphabets),
Par conséquent, Dans les Rails, vous pouvez simplement utiliser
Dans votre requête, vous pouvez utiliser/ajoutez
ORDER BY itemType ASC