class Section < ActiveRecord::Base
has_many :items, -> {order "number DESC"}
end
class Item < ActiveRecord::Base
belongs_to :section
end
#controller
@sections = Section.order("number DESC")
每个型号都有数字栏。 我认为项目的默认顺序是“编号DESC”。 但我想重新订购或在物品上添加一些其他条件。 有人知道如何制作动态条件或订购吗?
答案 0 :(得分:0)
您可能正在寻找文档中列出的范围:http://guides.rubyonrails.org/active_record_querying.html#scopes这是一种允许您创建不同排序并使其成为类方法的方法。
默认情况下,它会按ID asc排序(购买时你已经在你的定义中更改了它)
答案 1 :(得分:0)
您可以使用has_many本身的选项指定排序顺序:
class Section < ActiveRecord::Base
has_many :items, :order => 'number DESC'
end
class Item < ActiveRecord::Base
belongs_to :section
end
#controller
@sections = Section.find(:id)
@items = @sections.items
或者您可以将ActiveRecord与订单一起使用:
@sections = Section.find(:id)
@items = @sections.items.find(:all, :order => 'number DESC')
#or
@items = @sections.items.all(:order => 'number DESC')