@Konboi memo

主に技術に関してつらつらと。

kaminari が便利すぎる ~ 配列に対してページャーを実装する ~

はじめに

以前 railsページャーで有名なkaminari記事を書いた。

普通に使っている分にはなんら問題なく使えていたが、ちとModelだけではなく、データを整形したものに対してページャーを使いたかった。

自前で実装しようと思っていたところ、kaminariのドキュメントを読んでいたら便利なメソッドがあったので使ってみた。

配列に対してkaminariを使ってページャーを実装する

kaminari の paginate_array メソッドを使用する。

下記の用にUserの名前とFuga.fooで呼び出した値を配列にして、配列のオブジェクトに対して ページャーを実装する。

datas = []
users = User.all
users.each do |user|
  datas.push({
      name: user.name,
      foo: Fuga.foo
  })
end

@data = Kaminari.paginate_array(datas).page(params[:page]).per(4)
<% @data.each do |d| %>
<p><%= d.name %></p>
<p><%= d.foo %></p>
<% end %>
<%= paginate @hoge %>

これで自分で作った配列に対してページャーが簡単に作成できる。

ちなみに、今回の用途はPC側では@dataをページャーなしてそのまま渡しても問題ないけど、 SPだとちと表示するのに量がおおいのでページャーにしたかったので使用しました。

まとめ

  • 何を言ってるのか わからねーと思うが kaminari便利だったけどもっと便利だった!