【问题标题】:Rails 3 pagination, will_paginate vs. KaminariRails 3 分页,will_paginate 与 Kaminari
【发布时间】:2012-01-01 11:40:31
【问题描述】:

我的设置:Rails 3.0.9、Ruby 1.9.2

我正在为我的应用程序寻找分页解决方案,发现与可靠的 will_paginate 相比,Kaminari 有一个新的宝石。看起来will_paginate 已经有一段时间没有更新了,但后来又随着 V3.0 回来了。共识是什么,一个优于另一个,为什么?提前感谢您的见解。

编辑

我在 Twitter 上问过 Ryan Bates,他说

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      观看kaminari railscast 然后观看will paginate railscast

      Ryan Bates 在 cmets 中建议 Kaminari 更多地使用分音,这可能会使其稍微变慢,但不会太多

      【讨论】:

      • 关于性能:浏览 100k+ 个条目会使 will_paginate 无法使用变慢。然而,kaminari 保持快速。
      【解决方案3】:

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

      1. 最新的库,强大的支持rails 3+。
      2. 'Kaminari' 易于使用,它支持ajax 非常容易。
      3. 以纯对象方式进行分页。
      4. 它在 AREL 上用作代理,在 ActiveRecord 上没有重载特定的分页方法
      5. 不污染 Array 或 Hash 对象
      6. 对其他视图格式的更多标准导轨支持,最重要的移动设备

        User.page(7).per(50)
        

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

            猜你喜欢
            • 2014-02-20
            • 1970-01-01
            • 2012-01-02
            • 2011-09-26
            • 2012-06-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-18
            相关资源
            最近更新 更多