[英]Rails get list of records in batches with custom order
我必须显示用户列表和有关他们的信息。 但是由于我的数据库中有很多用户,所以 SQL真的很慢。 现在我想分批显示用户,比如 100 个,然后在单击“查看更多”时显示/加载更多。
我将如何 go 在实践中这样做?
[注意:我有一个应该保留的自定义顺序,所以 Rails 文档中的方法并没有真正帮助我]
您可以使用名为limit和offset的属性。 有了这个,您可以限制告知要获取的记录数,并使用偏移量告知在开始返回记录之前要跳过的记录数。
例子:
User.limit(3) # this returns first three records
它将生成以下 sql 查询。
"SELECT `users`.* FROM `users` LIMIT 3"
由于上述查询中未提及偏移量,因此它将返回前三个记录。
User.limit(5).offset(30)
#returns 5 records starting from 31th so you will get the records from 31 to 35
它将生成以下 sql 查询。
"SELECT `users`.* FROM `users` LIMIT 5 OFFSET 30"
您正在有效地寻找分页。 最常用的宝石是kaminari 。
您为 model(在您的情况下为用户)提供默认页面大小,然后调用
User.page(1)
访问结果的第一页。 在您的 controller 中,这通常看起来像:
@users = User.order(:name).page params[:page]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.