【Rails】Pagyで1ページに2つのページネーションを設置する
先に結論を書きます
ページ内にタブ(tab)を設置し、表示内容を切り替えることがあると思います。
(イメージ)
通常(ページネーション1つの時)であれば次のように定義すると思います。
def index @pagy, @users = pagy(User.all) end
これとは別に例えば男性ユーザーだけのページネーションを定義したい場合は、page_param:
を設定してあげるだけでいけます。
def index @pagy_all, @users = pagy( User.all, page_param: :page_all ) @pagy_men, @men = pagy( User.where(男性), page_param: :page_men ) end
ポイントとしては、@pagy
の部分が被らないように任意に設定すること。
page_param:
で設定した値はクエリになるので考えてネーミングしましょう。
ex) https://hogehoge/?page_all=1&page_men=2
Pagyの情報は少ない
新興のページネーションgemなだけあってkaminariやwill_paginateと比べると圧倒的に情報は少ないです。というか、今回の1actionで2つのページネーションを定義する方法も、多分公式ドキュメントにもはっきりとは載ってないんじゃないかと思います(私が見つけられなかっただけの可能性もありますし、遠回しな説明はありました)
kaminariを使っている方はいくらでも情報があったのでググってみてください。