Rails 3分页,will_paginate与Kaminari

时间:2011-11-18 18:12:16

标签: ruby-on-rails ruby-on-rails-3 pagination

我的设置:Rails 3.0.9,Ruby 1.9.2

我正在研究我的应用程序的分页解决方案,并看到有一个新的宝石Kaminari与可靠的will_paginate相比。看起来will_paginate暂时没有更新,但后来又回到了V3.0。什么是共识,是一个优先于另一个,为什么?提前感谢您的见解。

修改

我在推特上问赖恩贝茨,他说

  

两者都做得很好。最大的因素是如果你使用任何   由于它们不相容所以需要分页的宝石。我真的很喜欢   will_paginate的非引擎方法更多,但这是个人的   偏好。

5 个答案:

答案 0 :(得分:27)

Kaminari如果你使用的是rails 3+,我喜欢使用它,因为

  1. 这是最新的图书馆,并且有力地支持rails 3+。
  2. 'Kaminari'易于使用,非常容易支持ajax
  3. Paginate pure Object 方式。
  4. 它作为AREL的代理,没有在ActiveRecord上重载的特定分页方法
  5. 不污染数组或哈希对象
  6. 更多标准导轨支持其他视图格式,最重要的移动

    User.page(7).per(50)
    

    但是如果你使用的是rails 2.3等,请坚持使用{3}},这也适用于rails 3 +,但在内部它并不像Kaminari代码那么完美。

答案 1 :(得分:19)

我真的很喜欢Kaminari。我不知道will_paginate是否会这样做,但是Kaminari也可以对任何常规的Array分页:

Kaminari.paginate_array(an_array).page params[:page]

两者都有Railscasts,我建议观看。

答案 2 :(得分:14)

观看kaminari railscast,然后观看will paginate railscast

Ryan Bates在评论中建议Kaminari更多地使用偏见,这可能会使它慢一些,但不会太多

答案 3 :(得分:1)

我使用过两种宝石,坦率地说,我更喜欢Kaminari。它很容易使用。我没有看到任何性能问题或环境问题(我的应用程序存在于Heroku上)。

答案 4 :(得分:1)

虽然will_paginate可以很快完成工作,但Kaminari还允许您快速编辑分页HTML输出。

这对我来说很棒,因为我使用的是Bootstrap 3,并希望使用默认的paginations样式。

will_paginate有一个宝石允许你做同样的事情,但是Kaminari它更加灵活