Rails 3分页,will_paginate与Kaminari

我的设置:Rails 3.0.9,Ruby 1.9.2

我正在为我的应用程序寻找一个分页解决scheme,并看到有一个新的ISHgemKaminari相比,值得信赖的will_paginate 。 它看起来像will_paginate没有更新一段时间,但从V3.0回来。 什么是共识,是一个优于对方,为什么? 提前感谢您的见解。

编辑

我在Twitter上问Ryan Bates,他说

两者同样做得好。 最大的因素是如果你使用任何需要分页的gem,因为它们不兼容。 我喜欢will_paginate的非引擎方法多一点,但这是个人喜好。

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

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

     User.page(7).per(50) 

    但是如果你使用的是rails 2.3等,请坚持使用rails 3 +的will_paginate ,但是在内部它并不是完美的Kaminari代码。

我真的很喜欢Kaminari。 我不知道如果will_paginate这样做,但Kaminari也可以分页任何常规的旧Array

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

有两个Railscasts ,我build议看。

看kaminari railscast然后观看将分页railscast

瑞安·贝茨(Ryan Bates)在评论中build议Kaminari使用更多的partials,这可能会使分数慢一些,但不是很多

我已经使用了两个gem,坦率地说,我更喜欢Kaminari。 这很容易使用。 我没有看到任何性能问题或环境问题(我的应用程序生活在Heroku上)。

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

这对我来说是件好事,因为我使用的是Bootstrap 3,并且希望使用默认的分页样式。

will_paginate有一个gem让你可以做同样的事情,但是Kaminari更容易