2013-09-26 67 views
0

据我所知,我可以使用People.first(100)检索前100条记录,People.last(100)也是如此。通过ActiveRecord的ID范围

我不知道的是,我怎样检索范围在200-400的所有对象,总数是多少可以说一个1000条记录?

回答

1

你需要的是limitoffset - 阅读this了解更多信息。

实施例:

People.limit(200).offset(200) 

上面的代码需要200个记录从第201位开始记录 - 这意味着它是记录201-400。

+0

请记住,这不会返回范围内的值,它将返回从第201条记录开始的200条记录。因此,假设你已经删除了50个记录,其ID为200到400,你将获得200条记录,但是你的记录可能有200到450之间的任何一个记录。这是否有意义?所以limit-offset方法可以确保您获得200条记录,但是如果您正在寻找一系列id(或其他字段),您可以使用where方法。 –

0

您是否在特定字段上搜索,您的标题暗示您在搜索ID?

People.where('id BETWEEN ? AND ?', 200, 400) 

或...

People.where(id: 200..400) 

如果你不是在某一特定领域搜索,你会想用Big_Bird的限制和偏移方法。