2011-11-18 8 views
41

thiết lập của tôi: Rails 3.0.9, Ruby 1.9.2Rails 3 pagination, will_paginate vs Kaminari

Tôi đang nhìn vào một giải pháp pagination cho ứng dụng của tôi và thấy rằng có một viên ngọc mới-ish Kaminari nào so sánh đến will_paginate đáng tin cậy. Có vẻ như will_paginate không được cập nhật trong một thời gian nhưng từ đó đã trở lại với V3.0. Sự đồng thuận là gì, được ưa thích hơn người kia và tại sao? Cảm ơn trước vì thông tin chi tiết của bạn.

EDIT

Tôi hỏi Ryan Bates trên Twitter và ông nói

Cả hai thực hiện công việc tốt như nhau. Yếu tố lớn nhất là nếu bạn sử dụng bất kỳ đá quý nào yêu cầu phân trang vì chúng không tương thích. Tôi thích cách tiếp cận không phải động cơ của will_paginate nhiều hơn một chút, nhưng đó là tùy chọn cá nhân .

Trả lời

19

Tôi thực sự thích Kaminari. Tôi không biết nếu will_paginate thực hiện điều này, nhưng Kaminari cũng có thể đánh số trang bất kỳ đều đặn cũ Array:

Railscasts cho cả hai, mà tôi khuyên bạn nên xem.

14

xem kaminari railscast một sau đó xem các will paginate railscast

Ryan Bates khuyên trong các ý kiến ​​rằng Kaminari tận dụng nặng của partials, mà có thể làm cho nó fractionally chậm hơn, nhưng không nhiều

+11

liên quan đến hiệu suất: duyệt qua 100k mục + làm will_paginate không sử dụng được chậm. Tuy nhiên kaminari vẫn nhanh. – thedanielhanke

+7

@thedanielhanke - Bạn có thể chỉ ra bằng chứng/lý do cho việc này không? – Yarin

27

Kaminari Rocks nếu bạn đang sử dụng đường ray 3+, tôi thích sử dụng nó vì

  1. Đây là thư viện mới nhất và hỗ trợ đường ray 3+ mạnh mẽ.
  2. 'Kaminari' dễ sử dụng và nó hỗ trợ ajax rất dễ dàng.
  3. Phân trang tinh khiết Đối tượng cách.
  4. Nó hoạt động như một proxy trên AREL, không có phương pháp paginate cụ thể quá tải trên ActiveRecord
  5. Không gây ô nhiễm Mảng hoặc Hash đối tượng
  6. More ray tiêu chuẩn hỗ trợ cho các định dạng xem khác, quan trọng nhất di động

    User.page(7).per(50) 
    

    Nhưng nếu bạn đang sử dụng đường ray 2.3, hãy tiếp tục gắn bó với will_paginate cũng hoạt động với đường ray 3 +, nhưng bên trong nó không hoàn hảo như mã Kaminari.

1

Tôi đã sử dụng cả hai Gems và thẳng thắn, tôi thích Kaminari tốt hơn. Nó rất dễ sử dụng. Tôi chưa từng gặp bất kỳ sự cố về hiệu suất hoặc vấn đề môi trường nào (ứng dụng của tôi sống trên Heroku).

1

Trong khi will_paginate thực hiện công việc khá nhanh chóng, Kaminari cũng cho phép bạn nhanh chóng chỉnh sửa đầu ra HTML phân trang.

Đây là một điều tuyệt vời đối với tôi, vì tôi đang sử dụng Bootstrap 3 và muốn sử dụng kiểu kiểu trang mặc định.

Có một viên ngọc cho will_paginate cho phép bạn làm như vậy, nhưng Kaminari nó nhiều hơn flixible