2013-05-09 112 views
21

您好我有這個模型按升序排序的Rails

示範項目

class Inventory::Item < ActiveRecord::Base 
    has_many :types, :class_name => "ItemType" 
    attr_accessible :name 
end 

型號ITEM_TYPE

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

然後讓控制器說,我要排序的類型(其中有一流的ItemType )以項目名稱的升序排列。我怎麼做?

例如,

  • 的ItemType數= 1具有商品名=表
  • 的ItemType數= 2具有項名稱=椅
  • 的ItemType數= 3具有項目名稱=窗口
  • 的ItemType數= 4有項目名稱=計算機

因此而不是從數量排序的話,我想它排序基於item.name(ASC)是這樣的:

  • 的ItemType數= 2具有項名稱=椅
  • 的ItemType數= 4具有項名稱=計算機
  • 的ItemType數= 1具有商品名=表
  • 的ItemType數= 3具有項目名稱=窗口

回答

-2

在您的查詢,您可以使用/加ORDER BY itemType ASC

15

要以特定的順序檢索數據庫中的記錄,你可以使用order method

Item.order(:name) 

默認情況下此排序上升。

0

爲了使ASC(默認排序模式)名種場(字母)的,

You can use ORDER BY Clause in MySQL 

因此,在Rails中,你可以簡單地使用

Model.order(:field_name) 
1

您還可以設置默認順序你的模型是這樣的:

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

這將按item_name對項目進行排序,而控制器沒有任何改變