用 kaminari 反向分页?

2023-12-23

我在用Kaminari https://github.com/amatsuda/kaminari0.13.0 与红宝石 on Rails http://rubyonrails.org/ 3.2.8.

假设我的元素有默认排序crated_at, 我有8我的列表中的元素{a, b, c, d, e, f, g, h}我给它们分页3每页。

默认情况下kaminari会创建以下页面链接1, 2, 3链接到{h, g}, {f, e, d}, {c, b, a}.

如何让 kaminari 以相反的顺序创建页面链接?我希望它以相反的顺序生成链接3, 2, 1仍然链接到反向排序的元素{h, g}, {f, e, d}, {c, b, a}.

关于我试图解决的问题的一些背景信息:

我通过created_at对页面上的元素进行排序。我想让元素永远保留在同一页面上。如果我不使用反向分页,每次添加新元素时页面内容都会发生变化。因此,在上面的示例中,如果我向列表中添加更多元素,则使用默认的 kaminari 行为{i, j}那么1st页面将包含{j, i, h}, not {h, g}就像以前一样。这2nd页面将包含{g, f, e} not {f, e, d}像以前一样,等等... 这对博彩、SEO 等不利。

如果我有上述反向页码,那么1st页面仍然会有{c, b, a}, 3rd页面将使用新元素更新为{i, h, g}将会有一个新的第 4 页,其中有一个元素{j}.


我找到了解决方案:

def index
  users_scope = Users.order(:whateva)
  @users = reverse_paginate(users_scope, params[:page])
end

def reverse_paginate(scope, page)
  if page
    page_number = page
  else 
    page_number = Kaminari.paginate_array(scope.reverse).page(1).per(10).num_pages
  end
  Kaminari.paginate_array(scope.reverse).page(page_number).per(10).reverse!
end

您需要更新 kaminari 页面视图_page.html.erb并添加?page=1到网址:

   url = "#{url}?page=1" if page.number == 1
   link_to_unless page.current?, page.number, url, opts = {:remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用 kaminari 反向分页? 的相关文章

随机推荐

  • 更改窗口位置,然后等待窗口加载?

    请耐心等待 我对 Javascript 完全是个菜鸟 P 所以 我想做的是使用一个函数来加载网页 并且 在该功能完成后 我希望能够获取页面上某个元素的 HTML 代码 到目前为止 这是我的代码 function change window
  • OS X Sublime Text3 使用 zsh shell

    我想构建一个 python 文件 但出现以下错误 bin bash python command not found 原因是我使用的是 zsh 而不是 bash 那么如何让Sublime来查看 bin zsh 这表明您的路径不正确 也不是您
  • 如何使用NIO将InputStream写入文件?

    我正在使用以下方式来编写InputStream to File private void writeToFile InputStream stream throws IOException String filePath C Test jp
  • 使用颜色条在绘图中设置相同的纵横比

    我需要生成一个在两个轴上具有相同纵横比且在右侧具有颜色条的图 我尝试过设置aspect auto aspect 1 and aspect equal 没有好的结果 请参阅下面的示例和 MWE Using aspect auto 颜色条的高度
  • dojox 图表:删除图表周围的填充

    如何移动 dojox 图表周围的填充 这是一个例子 var chart1 new dojox charting Chart2D simplechart fill FFC0C0 chart1 addPlot default type Colu
  • 调用 NSTextField setStringValue: 后如何更新扩展工具提示大小?

    当视图包含NSTextField启用扩展工具提示且文本不适合 然后用户将光标悬停在该字段上 OS X 会显示扩展工具提示 如果你随后打电话setStringValue 更改文本内容NSTextField 扩展工具提示的大小不会更新 例如 如
  • 如何断言在 Symfony 中使用 Monolog 记录一行

    我在 Symfony2 中使用 Monolog 使用默认的 MonologBu ndle 我试图在我的测试中断言已记录一行 我已经在我的config test yml monolog handlers main type test leve
  • Groovy 中两个日期之间的持续时间

    Groovy 有没有办法获取两个 Date 对象之间的持续时间 我正在寻找的持续时间格式类似于 2 天 10 小时 30 分钟 Thanks 时间类别 http docs groovy lang org latest html api gr
  • Union-Find 或 DFS:哪个更适合查找连通分量?

    Union Find 和 DFS 都可以用来查找连接性 哪种情况下哪个更好 并查找算法最适合等价关系发生变化的情况 即需要对分区集执行 并集 操作 给定一个固定的无向图 等价关系根本不会改变 边都是固定的 OTOH 如果您有一个添加了新边的
  • 如何使用 mysqldump 仅导出 CREATE TABLE 命令?

    我正在尝试使用mysqldump仅导出数据库模式 没有数据 没有额外的 SQL 注释 只是CREATE TABLE命令 这是我到目前为止所得到的 mysqldump h localhost u root p no data compact
  • 在 Angular 6 中生成没有 *.spec.ts 的组件

    在以前的版本中 可以使用 angular cli json 禁用 spec ts 如下所示 有没有办法用 6 0 0 版本中的 angular json 来做到这一点 defaults component spec false servic
  • 在 wsdl 中哪里放置版本信息?

    我有一个 Web 服务 其中定义位于 wsdl 文件中 架构位于外部 xsd 文件中 在 xsd 文件中 有 schema 标记 它提供了一个属性 version 我可以用它来记录当前版本 wsdl 格式 WSDL 1 1 有类似的东西吗
  • 为什么我的 Ajax 调用的“等待”时间这么长? (Chrome 网络面板)

    我在页面上有一些 ajax 调用 请求一些 json 内容 在所有这些电话中 我等待响应完成的时间很长 对于每个呼叫 呼叫中都会有几秒钟的 等待 期 如下面的 Chrome 网络面板所示 我附上了一张图片 我不太确定是什么原因造成的 因为我
  • 如何在 Github Desktop 中重做“撤消最近提交”

    我想解锁我的最后一次提交 并在存储库菜单中单击了 撤消最近的提交 发生的事情是提交消失了 并且该提交中的所有文件都消失了 我在文件字段中留下了 0 更改 并且我回来了两个月的更改 我怎样才能取回该提交中的文件 这是我最终恢复文件的方法 由此
  • Java/JavaFX:为 JavaFX 标签设置 Swing 图标

    我正在尝试从文件 ico exe 中读取缩略图 图标 32x32px 并将其设置为 JavaFX 标签 我的第一次尝试 public Icon getLargeIcon String exeFile if exeFile null File
  • 当其他应用程序使用同一数据库时JPA的并发性

    我正在开发 Spring MVC JPA Web 应用程序 当此应用程序部署在实时环境中时 与我的应用程序交互的同一数据库将同时被其他 2 个 Dotnet 和 VB 应用程序使用 我通过版本列管理 JPA 应用程序的并发性 对于同一个数据
  • Django - 为什么我应该使用 render_to_response ?

    考虑一下 return render request index html context return render to response index html context 一方面 render更干净 更Pythonic 另一方面
  • 似乎无法起订量 EF CodeFirst 4.1。有帮助吗?

    我的任务是评估 codeFirst 并可能用于我们未来的所有项目 评估基于将 codeFirst 与现有数据库结合使用 想知道是否可以使用 codeFirst 4 1 来模拟存储库 没有假货 这个想法是将存储库注入到服务中并最小起订量存储库
  • 在nginx中设置“X-Forwarded-For”标头的目的是什么

    我的 Django 应用程序有以下 Nginx 配置 upstream api server localhost 8000 server listen 80 location proxy pass http api proxy redire
  • 用 kaminari 反向分页?

    我在用Kaminari https github com amatsuda kaminari0 13 0 与红宝石 on Rails http rubyonrails org 3 2 8 假设我的元素有默认排序crated at 我有8我的