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

时间:2018-07-06 16:44:47

标签: ruby activerecord dart

这与我之前的query有关。

我可以使用以下查询从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;
      });
    }
  }

0 个答案:

没有答案