按升序订单导轨排序

muh*_*san 27 sorting ruby-on-rails view

嗨,我有这个模型

型号项目

class Inventory::Item < ActiveRecord::Base
  has_many :types, :class_name => "ItemType"
  attr_accessible :name
end
Run Code Online (Sandbox Code Playgroud)

模型item_type

class Inventory::ItemType < ActiveRecord::Base
  belongs_to :item 
  attr_accessible :number
end
Run Code Online (Sandbox Code Playgroud)

然后在控制器中说我想根据项目名称按升序对类型(具有类ItemType)进行排序.我怎么做?

例如,

  • ItemType number = 1具有Item name = Table
  • ItemType number = 2具有Item name = Chair
  • ItemType number = 3具有Item name = Window
  • ItemType number = 4具有Item name = Computer

所以不是从数字中对它进行排序,而是希望它基于item.name(ASC)进行排序,如下所示:

  • ItemType number = 2具有Item name = Chair
  • ItemType number = 4具有Item name = Computer
  • ItemType number = 1具有Item name = Table
  • ItemType number = 3具有Item name = Window

Bra*_*rth 37

像这样的东西应该做的伎俩......

ItemType.includes( :item ).order( 'inventory_items.name DESC' )
Run Code Online (Sandbox Code Playgroud)

此外,如果您需要在许多地方执行此操作,您可以通过为调用提供:order参数来完成相同的操作has_many,而不是 - http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many.


And*_*den 17

要按特定顺序从数据库中检索记录,可以使用以下order方法:

Item.order(:name)
Run Code Online (Sandbox Code Playgroud)

默认情况下,这会按升序排序.