Ordenar en carriles de orden ascendente

Hola tengo este modelo

Artículo modelo

class Inventory::Item  "ItemType" attr_accessible :name end 

Modelo item_type

 class Inventory::ItemType < ActiveRecord::Base belongs_to :item attr_accessible :number end 

luego digamos en el controlador que quiero ordenar los tipos (que tiene clase ItemType) en orden ascendente según el nombre del artículo. ¿Cómo puedo hacer eso?

Por ejemplo,

  • Número de ItemType = 1 tiene Nombre de Item = Tabla
  • Número de ItemType = 2 tiene nombre de Item = Presidente
  • Número de ItemType = 3 tiene Nombre de Item = Ventana
  • Número de ItemType = 4 tiene Nombre de Item = Computadora

Entonces, en lugar de clasificarlo por número, quiero ordenarlo según el item.name (ASC) como este:

  • Número de ItemType = 2 tiene nombre de Item = Presidente
  • Número de ItemType = 4 tiene Nombre de Item = Computadora
  • Número de ItemType = 1 tiene Nombre de Item = Tabla
  • Número de ItemType = 3 tiene Nombre de Item = Ventana

Algo como esto debería hacer el truco …

 ItemType.includes( :item ).order( 'inventory_items.name DESC' ) 

Además, si necesita hacer esto en muchas ubicaciones, puede lograr lo mismo al proporcionar un parámetro :order a su llamada has_many , en su lugar, http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many .

Para recuperar registros de la base de datos en un orden específico, puede utilizar el método de order :

 Item.order(:name) 

de forma predeterminada esto ordena ascendente.

También puede establecer el orden predeterminado en su modelo de esta manera:

 default_scope order("#{self.table_name}.item_name ASC") 

Esto ordenará los elementos por item_name sin ningún cambio en el controlador

Para hacer ASC (modo de clasificación predeterminado) para el tipo de campos de nombre (alfabetos),

 You can use ORDER BY Clause in MySQL 

Por lo tanto, en Rails puedes usar simplemente

 Model.order(:field_name) 

En su consulta, puede usar / agregar ORDER BY itemType ASC