按升序导轨排序 [英] Sort in Ascending Order Rails
问题描述
我有这个模型
模型项
class Inventory::Item < ActiveRecord::Base
has_many :types, :class_name => "ItemType"
attr_accessible :name
end
模型item_type
Model item_type
class Inventory::ItemType < ActiveRecord::Base
belongs_to :item
attr_accessible :number
end
然后在控制器中说,我要基于项目名称以升序对类型(具有类ItemType的类型)进行排序.我该怎么办?
then let say in controller I want to sort types (which has class ItemType) in ascending order based on Item name. How do I do that?
例如,
- ItemType号= 1,项名称=表
- ItemType号= 2,项目名称= Chair
- ItemType号= 3,项目名称=窗口
- ItemType号= 4,项目名称=计算机
- ItemType number = 1 has Item name = Table
- ItemType number = 2 has Item name = Chair
- ItemType number = 3 has Item name = Window
- ItemType number = 4 has Item name = Computer
- ItemType号= 2,项目名称= Chair
- ItemType号= 4,项目名称=计算机
- ItemType号= 1,项名称=表
- ItemType号= 3,项目名称=窗口
- ItemType number = 2 has Item name = Chair
- ItemType number = 4 has Item name = Computer
- ItemType number = 1 has Item name = Table
- ItemType number = 3 has Item name = Window
For example,
因此,我希望它不是基于数字排序,而是希望基于item.name(ASC)进行排序,如下所示:
So instead of sorting it from number, I want it sorted based on item.name(ASC) like this:
推荐答案
这种方法应该可以解决问题...
Something like this should do the trick...
ItemType.includes( :item ).order( 'inventory_items.name DESC' )
此外,如果您需要在许多位置执行此操作,则可以通过为has_many
调用提供:order
参数来完成同一件事,而不是-
Also, if you need to do this in many locations, you can accomplish the same thing by providing an :order
parameter to your has_many
call, instead - http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many.
这篇关于按升序导轨排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!