You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails同一页面多表格使用Pagy分页的冲突问题解决

在同一页面中使用Pagy实现多表独立分页

要解决两个表格共用page参数导致的分页冲突问题,只需为每个Pagy实例指定专属的分页参数名,具体步骤如下:

1. 控制器中指定专属page参数

初始化Pagy对象时,通过page_param选项分别设置不同的参数名,替代默认的page:

# 发票表格的Pagy初始化
@pagy_inv, @invoices = pagy(
  @invoices.reorder(sort_column_show_city_invoices => sort_direction_show_city_invoices),
  items: params.fetch(:count, 10),
  page_param: :page_inv  # 自定义发票分页参数
)

# 订单表格的Pagy初始化
@pagy_ord, @orders = pagy(
  @orders.reorder(sort_column_show_city_orders => sort_direction_show_city_orders),
  items: params.fetch(:count, 10),
  page_param: :page_ord  # 自定义订单分页参数
)

2. 视图中生成独立的分页链接

渲染分页导航时,通过params选项保留当前的搜索、排序参数,同时确保分页链接使用对应的专属参数:

# 发票表格的分页导航
<%== pagy_nav(@pagy_inv, params: params.merge(page_inv: @pagy_inv.page)) %>

# 订单表格的分页导航
<%== pagy_nav(@pagy_ord, params: params.merge(page_ord: @pagy_ord.page)) %>

这样修改后,两个表格的分页参数完全独立:发票分页使用page_inv,订单分页使用page_ord,切换某一个表格的页码时,只会修改对应参数,不会影响另一个表格的分页状态,彻底解决页码超出范围报错的问题。

内容的提问来源于stack exchange,提问作者Mi Ro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:45:29