【问题标题】:How to render users pagination when an action is performed on a certain user当对某个用户执行操作时如何呈现用户分页
【发布时间】:2020-07-11 00:36:59
【问题描述】:

我们使用will_paginate gem 按字母顺序呈现用户,每页 10 个条目

假设我们在第二页对activatedeactivate 的用户(比如user15)执行操作 , 我们更愿意在第二页本身显示用户信息,或者我们应该在此处使用默认排序条件将用户重定向到第一页

还有另一种情况会出现问题:

假设有 31 个条目,那么第 4 页将包含一个条目 , 如果我们删除这个用户,我们不能显示第四页,因为没有这样的用户存在 在上面的场景中,page=4per_page=10,但是它会渲染这个页面失败

我们应该如何处理这些情况,我们是否应该在上述任何一种情况下显示page=1

在上述情况下正确的做法是什么

【问题讨论】:

    标签: ruby-on-rails pagination will-paginate


    【解决方案1】:

    我们更愿意在第二页本身显示用户信息,或者我们应该在此处使用默认排序标准将用户重定向到第一页

    请您详细说明一下。

    假设有31个条目,那么第4页将包含一个条目,如果我们删除这个用户,我们不能显示第四页,因为不存在这样的用户在上面的场景中,page=4和per_page=10,但它会无法呈现此页面

    您可能想研究光标分页。而不是页面,您有一个用于记录的游标,并在此游标之前/之后获取所有内容。例如,此光标可以是编​​码的 created_at 时间戳。

    与偏移分页相比,光标分页还有很多其他优势。但是,will_paginate 不支持光标分页,因此不确定这是否适合您。

    为了解决这些性能问题,一些数据库引擎提供基于游标的分页,或鼓励基于最小值/最大值的分页,例如WHERE id > :max_id 其中 :max_id 值基于上一页结果。这种方法通常在速度和内存问题上更胜一筹,但也有一些折衷;最值得注意的是,例如,它只能转到下一页结果而不是立即跳转到第 20 页。 will_paginate 库不处理基于光标的分页。

    https://github.com/mislav/will_paginate/wiki

    https://medium.com/@meganchang_96378/why-facebook-says-cursor-pagination-is-the-greatest-d6b98d86b6c0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 2011-08-10
      • 2020-01-17
      相关资源
      最近更新 更多