Gem Pagy

Tram Ho

1. Introduction:

  • Gem pagy được sử dụng để paging trong Ruby on Rails
  • Gem pagy thể hiện nhiều ưu điểm hơn so với các gem khác như will_paginate hoặc kaminari

2. Install:

  • Thêm gem pagyvào Gemfile

  • Chạy command để install gem

  • Thêm pagy.rb vào file config/initializer/pagy.rb

  • Bạn có thể tham khảo file mẫu tại đây

  • Thêm include Pagy::Frontend vào application_controller.rb

  • Thêm include Pagy::Frontend vào application_helper.rb

3. Basic Usage:

  • Sử dụng pagy method trong controller

  • Thêm require "pagy/extras/bootstrap" vào pagy.rb

  • Sử dụng pagy_bootstrap_nav helper trong view

  • Kết quả thu được

4. Advance Usage:

a. Backend Extras:

  • Theo ví dụ trên, gem pagy đang thực hiện pagination với ActiveRecord_Relation được trả về bởi Book.all.

  • Tuy nhiên pagy cũng có thể thực hiện pagination với các kiểu dữ liệu khác có cấu trúc tương tự (dạng array).

  • Để sử dụng chức năng này cần thêm các extra của gem pagy vào file pagy.rb

  • Ví dụ với cấu trúc kiểu Array

  • Ta có thể thực hiện tương tự với Elasticsearch Rails, Searchkick

  • Tham khảo các backend extras khác tại đây

b. Frontend Extras:

  • Gem pagy cung cấp các helper method để render pagination trên Front-end
  • Ví dụ
  • Gem pagy cung cấp các front extra và các helper method tương ứng tùy theo thư viện để render pagination trên Front-end
  • Ví dụ sử dụng bootstrap
  • Bạn có thể tham khảo template gốc của gen pagy và custom lại theo nhu cầu
  • Tham khảo template gốc của pagy cho bootstrap tại đây
  • Ví dụ
  • Một số method của Pagy Object được sử dụng trong template
  • Tham khảo các front extras khác tại đây

c. Feature Extras:

i. I18n:

  • Tham khảo các file i18n có sẵn tại đây
  • Pagy cung cấp method pagy_t tương tự như method I18n.t
  • Method pagy_t nhanh hơn so với method I18n.t
  • Tham khảo thêm tại đây

ii. items:

  • Sử dụng method pagy với option items để quy định số record trả về mỗi page
  • Ví dụ
  • Bạn có thể quy định số items mặc định trong pagy.rb

iii. overflow:

  • Sử dụng method pagy với option overflow để quy định số behaviour trả về khi truy cập quá số page cho phép

  • Ví dụ

  • Bạn có thể quy định số items mặc định trong pagy.rb

  • Các options có thể là

  • Tham khảo các feature extra khác tại đây

5. Link demo

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo