Ruby on rails 如何查找除最新型号以外的所有型号

Ruby on rails 如何查找除最新型号以外的所有型号,ruby-on-rails,Ruby On Rails,我有一个模型Foo,它有date列,我想找到所有Foo,除了最新的一个 foo = Foo.order(:date).last foos = Foo.where.not(id: foo.id) 我可以通过此操作获得foos,有更好的方法吗?实现此结果的最简单方法是查询所有记录,然后从数组中删除最后一条记录: foo = Foo.order(:date).all foo.pop #Remove the last record from the returned array of records

我有一个模型
Foo
,它有
date
列,我想找到所有
Foo
,除了最新的一个

foo = Foo.order(:date).last
foos = Foo.where.not(id: foo.id)

我可以通过此操作获得
foos
,有更好的方法吗?

实现此结果的最简单方法是查询所有记录,然后从数组中删除最后一条记录:

foo = Foo.order(:date).all
foo.pop #Remove the last record from the returned array of records
这将起作用,但是,您需要确保查询相应地对返回的记录进行排序/排序

另一种简洁的方法是:

foo = Foo.order(:date).all[0..-2]

为什么不把它们全部组合起来,按相反的顺序排列,然后用一抵消呢?应该是
foo=foo.order(:date)。all
而不是
foo=foo.all
当然,顺序和排序就像我提到的那样重要。