我有一个对象数组,每个对象都响应'order'方法。
我可以写方法
objects = Objects.all
objects.each do |i|
puts i.order
end
但我不确定订单是否正确。有没有快速的方法按照每个对象的正确顺序迭代我的数组?
更新:真实案例。
class Articles < ActiveRecord::Base
as_many :article_pages
end
a = Article.find(2345)
pages = a.article_pages
pages.each ...
pages.first.order = 1
pages.last.order = 5
我需要按顺序迭代我的页面......
a.article_pages.order('order').each
不起作用
答案 0 :(得分:4)
默认情况下,ActiveRecord不保证任何订单。要更改它,请使用:
a = Article.find(2345)
pages = a.article_pages.order('order asc')
按列排序。将asc
切换为desc
以按降序排序。
答案 1 :(得分:0)
您可以使用排序选项,以防您只需要升序
a = Article.find(2345)
pages = a.article_pages.all.sort_by &:order