---
title: pagy
tags: 專案實作分享 相關
---
## <font color=red>**pagy** </font>
gem 'pagy', '~> 5.1'
bundle
把這些放進去
config/initializers/pagy.rb
[content](https://github.com/ddnexus/pagy/blob/master/lib/config/pagy.rb)
放到上層ApplicationController
`include Pagy::Backend`
在需要用到的地方使用這條
products.controller
`@pagy, @products = pagy(Product.all, items: 6)`
helper小幫手加入這條
ApplicationHelper
`include Pagy::Frontend`
有三種用法,下面兩種要去config開
<%== pagy_nav(@pagy, ...) %>
<%== pagy_nav_js(@pagy, ...) %>
<%== pagy_combo_nav_js(@pagy, ...) %>
style
```css=
@import "~tailwindcss/base";
.pagy-nav,
.pagy-nav-js {
@apply flex space-x-2;
}
.pagy-nav .page a,
.pagy-nav .page.active,
.pagy-nav .page.prev.disabled,
.pagy-nav .page.next.disabled,
.pagy-nav-js .page a,
.pagy-nav-js .page.active,
.pagy-nav-js .page.prev.disabled,
.pagy-nav-js .page.next.disabled {
@apply block rounded-lg px-3 py-1 text-sm text-gray-500 font-semibold bg-gray-200 shadow-md;
&:hover{
@apply bg-gray-300;
}
&:active{
@apply bg-gray-400 text-white;
}
}
.pagy-nav .page.prev.disabled,
.pagy-nav .page.next.disabled,
.pagy-nav-js .page.prev.disabled,
.pagy-nav-js .page.next.disabled {
@apply text-gray-400 cursor-default;
&:hover {
@apply text-gray-400 bg-gray-200;
}
&:active {
@apply text-gray-400 bg-gray-200;
}
}
.pagy-nav .page.active,
.pagy-nav-js .page.active {
@apply text-white cursor-default bg-gray-400;
&:hover {
@apply text-white bg-gray-400;
}
&:active {
@apply bg-gray-400 text-white;
}
}
.pagy-combo-nav-js {
@apply flex max-w-max rounded-full px-3 py-1 text-sm text-gray-500 font-semibold bg-gray-200 shadow-md;
}
.pagy-combo-nav-js .pagy-combo-input {
@apply bg-white px-2 rounded-sm
}
.pagy-combo-nav-js .page.prev,
.pagy-combo-nav-js .page.next {
&:hover {
@apply text-gray-800;
}
&:active {
@apply text-gray-800;
}
}
.pagy-combo-nav-js .page.prev.disabled,
.pagy-combo-nav-js .page.next.disabled {
@apply text-gray-400 cursor-default;
}
```