嗨,我有这个型号
模型项目
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)进行排序。我该怎么做?
例如,
所以不是从数字中对它进行排序,而是希望它基于item.name(ASC)进行排序,如下所示:
答案 0 :(得分:34)
这样的事情应该可以解决问题...
ItemType.includes( :item ).order( 'inventory_items.name DESC' )
此外,如果您需要在许多地方执行此操作,您可以通过在:order
电话中提供has_many
参数来完成相同的操作,而不是http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many。
答案 1 :(得分:17)
答案 2 :(得分:1)
您还可以在模型中设置默认顺序,如下所示:
default_scope order("#{self.table_name}.item_name ASC")
这将按item_name对项目进行排序,而不对控制器进行任何更改
答案 3 :(得分:0)
为名称类型的字段(字母表)制作ASC(默认排序模式),
You can use ORDER BY Clause in MySQL
因此,在Rails中你可以简单地使用
Model.order(:field_name)
答案 4 :(得分:-2)
在您的查询中,您可以使用/添加ORDER BY itemType ASC