簡體   English   中英

按升序訂單導軌排序

[英]Sort in Ascending Order 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 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

像這樣的東西應該做的伎倆......

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

此外,如果您需要在許多位置執行此操作,您可以通過為has_many調用提供:order參數來完成相同的操作,而不是 - http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many

要按特定順序從數據庫中檢索記錄,可以使用order方法

Item.order(:name)

默認情況下,這會按升序排序。

您還可以在模型中設置默認順序,如下所示:

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

這將按item_name對項目進行排序,而不對控制器進行任何更改

對於名稱類型的字段(字母表)進行ASC(默認排序模式),

You can use ORDER BY Clause in MySQL

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

Model.order(:field_name)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM