用Kaminari过滤分页

时间:2013-07-31 21:49:27

标签: ruby-on-rails activerecord pagination kaminari

我建立了一个使用由Kaminari支持的AJAX分页的网站。我还设置了简单的过滤和搜索功能,因此您可以在http://example.com/products/filter?query=blah上浏览我的列表。

我正在使用Kaminari的内置link_to_next_page帮助程序来生成我的下一页链接。出现此问题的原因是,此生成的链接会忽略我的查询/过滤器,将http://example.com/products/filter?query=blah上的任何人发送到http://example.com/products?page=2

我玩过的一个解决方案是重写link_to_next_page帮助器以包含我的过滤器和搜索条件,但这(与所有事情一样)比预期更多的工作。还有更好的方法吗?

1 个答案:

答案 0 :(得分:6)

根据link_to_next_page文档,它应该从env获取QUERY_STRING,因此它将保留查询参数

def link_to_next_page(scope, name, options = {})
  params = options.delete(:params) ||(Rack::Utils.parse_query(env['QUERY_STRING']).symbolize_keys rescue {})

如果它没有按预期工作,你可以自己传递params

<%= link_to_next_page @items, 'Next Page', :params => params %>