2013-03-27 42 views
1

在Rails我经常这样做:Rails的n个元素之前的最后

Model.last(5).first 

这检索元素最后 -5。

是否有这样做的一个内置的方式吗?

+0

你怎么排序默认? – apneadiving 2013-03-27 11:00:54

+0

通常只是由id ...这有什么关系吗? – TTT 2013-03-27 11:16:05

+0

有“问题”,因为这取决于ORM,默认的排序是不一样的,有些人没有undrstand为什么本地和开发,行为改变 – apneadiving 2013-03-27 11:18:30

回答

1

更常用的方法是偏移()

Model.offset(5).last 

编辑(懒人):

1.8.7 :001 > User.first.id 
=> 1 
1.8.7 :002 > User.last.id 
=> 143455 
1.8.7 :003 > User.offset(5).last.id 
=> 143450 
+0

这是错误的,你必须先扭转选择的顺序,因此我的问题 – apneadiving 2013-03-27 11:09:47

+0

你不必扭转这抓住最后的第五个元素! – 2013-03-28 11:49:18

+0

也许你可以比DOC在这里读到这更好:'Client.limit(5).offset(30)将返回,而不是最高5 clients'的***开始与31 *** – apneadiving 2013-03-28 12:16:07

相关问题