Kaminari:对可移动项目列表进行分页

Kaminari: paginating a list of removable items

听起来这应该是一个常见问题,但我找不到任何相关信息。

设置: 我有一个分页的项目列表;每个项目都有一个 remote: true "Delete" button,因此可以使用 remote ajax 请求删除任何项目。

问题: 一旦您删除了第一页上的一些项目,转到下一页将导致您丢失了一些项目。

例如对于每页 10 个项目的 30 个项目,删除第一页上的 2 个项目并转到第 2 页将导致您看到项目 #12-22。 (因为第 10-12 项现在显示在第一页上,而不是我们刚刚删除的那一次。)

我目前的想法是每次删除一个项目时将下一个项目附加到列表的末尾,这样我们每页总是有 10 个项目,但我很想知道是否有 better/simpler 处理这个问题的方法。

我认为这是正确的想法。删除对象后,您应该使用 ajax 重新加载整个列表+分页。

大型动态网站处理此问题的方式是在给定结果后向您显示结果,而不是仅仅根据页面上的项目数进行偏移。

Reddit 就是一个很好的例子,如果您转到第二页,您的 url 将类似于 https://www.reddit.com/?count=25&after=t3_41fk8j,其中最后一个值是前一页上过去 post 的哈希值。