暂时禁用Spree中的Kaminari分页

时间:2012-02-07 05:34:47

标签: ruby-on-rails spree kaminari

我正在制作一个Spree网站,其中包含用于更改每页产品数量的链接,其中包含All的链接。数字的链接很简单,因为我可以通过查询字符串和帮助方法传递:per_page参数。但是,我无法弄清楚我需要通过什么告诉Kaminari不分页或暂时禁用Kaminari。

我很高兴在Spree或Kaminari提供解决方案。我更喜欢:per_page = 1000以外的方法或类似的大数字。

  • Spree 0.70.3
  • Kaminari 0.13.0

3 个答案:

答案 0 :(得分:1)

你能传递一个querystring参数,然后在你的控制器动作中过滤它吗?例如:

def show
  @products = unless params[:show_all]
    Product.page(params[:page]).per(params[:per_page])
  else
    Product.all
  end
end

我知道这不会给你一个Spree或Kaminari的解决方案,但它可能有助于解决这个问题。我很想知道是否还有另一种内置于图书馆的方式。

答案 1 :(得分:1)

尝试此操作来处理未定义的方法' current_page'

=paginate @object if @object  && @object.try(:total_pages)

答案 2 :(得分:0)

这就是我一直在做的事情,因为我需要kaminari添加到记录列表中的帮助方法:

params[:per] = Product.count if params[:per] == 'all'
Product.page(params[:page]).per(params[:per])

这样可以避免undefined method 'current_page' for #<Array:0x007fc6157c16a8>错误。 (基本上是@Yogh在另一个答案的评论中提出的建议。)