Pagyの使い方まとめ

この記事について

rubygemsPagyについて調べたことと使い方についてまとめます。 rails上で動作させること前提で記事を書きました。

Pagyとは

will-paginateやkaminariと同じページネーションを提供してくれる機能を持つgemです。それらよりも高速でメモリ効率が良いことなどを謳っています。

使い方

Pagy::Backendをcontrollerにインクルードして、Pagy::Frontendをhelperにインクルードするだけで基本的なページネーション機能を使うための準備が整います。

使ってみた

scaffoldで簡単なアプリを作って、コンソールからPostインスタンスを40個作成してみました。1スクリーンに入りきっていない... f:id:hiroki_oshima:20190217023411p:plain

ここからpagyを導入してみます。

上記のようにPagy::BackendPagy::Frontendをインクルードしてから、

application_controller.rb

def index
  --- @posts = Post.all
  +++ @pagy, @posts = pagy(Post.all)
end

posts/index.html.erb

# ページネーションつけたい所に
<%== pagy_nav(@pagy) %>

すると、以下のようにページネーション機能を導入することができました。

f:id:hiroki_oshima:20190217024219p:plain

また、必要に応じてpagyに用意されているextrasを読み込むことによって簡単に機能を拡張させることができます。

まとめ

extrasがかなり便利そうなのでもう少し調べて見たいと思います。 また、コード量が少なくかなり読みやすそうなのでコードリーディングの練習にもいいかもなと思いました。

参考

github.com