Ruby ActiveRecord是否批量检索新插入的记录?

Ruby ActiveRecord是否批量检索新插入的记录?,ruby,activerecord,dart,Ruby,Activerecord,Dart,这与我以前的经历有关 我可以使用以下查询从ActiveRecord获取批次记录: Client.offset(15 * iteration).first(15) 我遇到了一个用户输入新记录的问题 假设有100条记录,批次为15。 前6次迭代(90条记录)和最后一次迭代(10条记录)有效。但是,如果出现新条目(总共101条记录),程序将失败,因为它将: a) 如果迭代计数器设置为增量,它将查询101范围以外的记录,结果不返回任何内容 b) 如果迭代计数器修改为仅在15个项目的整批完成时递增,则重

这与我以前的经历有关

我可以使用以下查询从ActiveRecord获取批次记录:

Client.offset(15 * iteration).first(15)
我遇到了一个用户输入新记录的问题

假设有100条记录,批次为15。 前6次迭代(90条记录)和最后一次迭代(10条记录)有效。但是,如果出现新条目(总共101条记录),程序将失败,因为它将:

a) 如果迭代计数器设置为增量,它将查询101范围以外的记录,结果不返回任何内容

b) 如果迭代计数器修改为仅在15个项目的整批完成时递增,则重复最后14个项目加上1个新项目

如何获取新发布的记录

省道代码:

_getData() async {
    if (!isPerformingRequest) {
      setState(() {
        isPerformingRequest = true;
      });

      //_var represents the iteration counter - 0, 1, 2 ...
      //fh is a helper method returning records in List<String>
      List<String> newEntries = await fh.feed(_var);

      //Count number of returned records.
      newEntries.forEach((i) => _count++);

      if (newEntries.isEmpty) {
        ..
        }
      } else {

        //if number of records is 10, increment _var to go to the next batch of 10.
        if(_count == 10) {
          _var++;
          _count = 0;
        }
        //but if count is not 10, stay with the same batch (but previously counted/display records will be shown again)
      }

      setState(() {
        items.addAll(newEntries);
        isPerformingRequest = false;
      });
    }
  }
\u getData()异步{
如果(!isPerformingRequest){
设置状态(){
isPerformingRequest=true;
});
//_var表示迭代计数器-0,1,2。。。
//fh是一种帮助器方法,返回列表中的记录
列出新条目=等待fh.feed(_var);
//计数返回的记录数。
newEntries.forEach((i)=>\u count++);
if(newEntries.isEmpty){
..
}
}否则{
//如果记录数为10,则增加_var以转到下一批10。
如果(_count==10){
_var++;
_计数=0;
}
//但如果计数不是10,则保持同一批(但先前计数/显示的记录将再次显示)
}
设置状态(){
items.addAll(新条目);
isPerformingRequest=false;
});
}
}

继续,向我们展示一些您正在尝试执行的操作的代码。对于101条记录,请在控制台中尝试
User.offset(90).limit(15)
User.offset(105).limit(15)
。第一个应返回11条记录,第二个应返回空数组。如果是这样的话,那么可能是迭代了7次而没有处理空数组?这是我的猜测,但如果我错了,你最好发布错误消息。