ruby - Ruby ActiveRecord 获取到最后一个条目的范围?
问题描述
假设我的数据库中有 100 个条目,我的移动应用程序有一个无限列表视图,用于查询数据库中的条目。
应用程序以 15 个为一组显示项目,一旦用户到达 15 个项目的末尾,应用程序将查询接下来的 15 个项目。这意味着将有 10 个项目的剩余部分构成总共 100 个项目。
我尝试查看一些 ActiveRecord 的方法,例如find
:
# Find the clients with primary keys 1 and 10.
clients = Client.find([var, var+14]) # var integer is provided by GET request.
# => [#<Client id: 1, first_name: "Lifo">, #<Client id: 10, first_name: "Ryan">]
然而,值得注意的是The find method will raise an ActiveRecord::RecordNotFound exception unless a matching record is found for all of the supplied primary keys.
那么我将如何获取最后 10 个项目以显示在屏幕上?另外,当范围内没有项目时,是否可以让 ActiveRecord 返回一个值,以便我可以显示一条all items shown
消息?
解决方案
Client.offset(15 * iteration).first(15)
是我在这里推荐的。那么前 15 个迭代应该是 0,第二次刷新列表时应该是 1。当然,您可以调整计算偏移量的方式。
您可能想指定一个order
,以保持一致。
推荐阅读
- laravel - 十月 CMS:在主题之间共享部分内容
- c# - xamarin 表单,自动完成位置地址
- php - url上的Laravel检查文件
- java - 在线程中运行消息循环
- c# - Microsoft.Extensions.Hosting EnvironmentName 覆盖默认生产值
- cassandra - Cassandra 轻量级事务失败
- batch-file - 如何在批处理脚本中使用 sqlcmd 查询结果
- crafter-cms - 创建站点时身份验证失败问题
- windows-10 - 检测 Skype 来电
- javascript - Node.js 将数据写入文件会导致额外的写入字符