Chris Seelus

02 januar 2023

Min Read

Ruby on Rails: paginer tilstandsdygtige faner med Pagy

I en seneste indlæg på bloggen Imaginary Cloud, Tiago talte om Pagy, det nye højtydende barn på blokken, når det kommer til paginering i Rails (eller egentlig enhver rackbaseret Ruby-ramme).

Customized-Pagy-Navigation-Examples

Denne opfølgning er en vejledning, der bruger den indbyggede undefined ekstra, der tilbyder en ny slags UI gennem undefined hjælper, der tilpasser den lidt til vores behov.

Jeg bruger en lille prøveapp med nogle testdata genereret med Faker-perlen for at demonstrere Pagys evner. Du kan se, hvad vi bygger og inspicerer kode på GitHub.

Udover standardfrontend-hjælperen undefined, som vil generere meget grundlæggende paginering, der er to andre (undefined, undefined), så hvis du vil bruge en anden form for paginering eller gå uden Bootstrap, er det også helt fint.

blue arrow to the left
Imaginary Cloud logo

Installation

Først skal du tilføje Pagy til din Gemfile og køre undefined:

Føj programmets data til databasen:

Opret undefined initialiserer til appen:

undefined

undefined

Inkluder Pagy-backend i en controller for at gøre den tilgængelig lige der eller inde undefined for at gøre det tilgængeligt globalt:

Nu er du indstillet til at paginere dine ActiveRecord-samlinger inde i controllere, der inkluderer Pagy-backend, som ville være alle controllere, der arver fra din undefined hvis du inkluderede det der. Lad os sige, at du har en indekshandling, der viser noget rumtåge√¶, som du vil paginere, du kan gøre det på denne måde:

Inkluder frontend i en hjælper eller i undefined for at gøre det tilgængeligt globalt:

For at gengive din paginerede nebul√¶ kan du nu bruge en af Pagys frontend-hjælpere, som sådan:

Tilpasning af paginering

Som standard undefined vil gengive noget som dette:

Pagy Nav Bootstrap Compact

Du kan tilpasse tekstetiketterne, hvis du undefined i en initializer skal du kopiere standard Pagy-ordbogen til din undefined og ændre eller oversætte etiketterne, som du vil.

Via initialisatoren kan du også indstille indstillinger som antallet af elementer pr. Side og meget mere.

For at tilpasse stylingen kan vi bruge lidt SASS:

undefined

Dette vil undefined Støvlestropper undefined stil, udskift teksten på forrige/næste knapper med pilikoner og stil undefined.

blue arrow to the left
Imaginary Cloud logo

Paginere flere samlinger på én gang

Nogle gange er det nødvendigt at paginere flere samlinger pr. controller-handling.

I det følgende eksempel gengiver jeg to samlinger, Stars & Nebulae, på en side inde i to Bootstrap-faner.

Med Pagy er det nemt at paginere og navigere hver af dem separat.

Inde i controller-handlingen, hvor jeg definerer Pagy-samlingerne, er alt, hvad der er nødvendigt, tilføjelsen af en undefined med et symbol efter eget valg til hver samling:

undefined

Nu tilføjer Pagy automatisk denne parameter til navigationslinkene samt udtrækker dem fra en URL, når du gengiver en visning. Ekstremt let og praktisk!

blue arrow to the left
Imaginary Cloud logo

Opretholdelse af staten

For også at opretholde den tilstand, der aktuelt er aktiv, kan vi bruge Pagys mulighed for at tilføje vilkårlige parametre:

‍undefined

Denne parameter kan bruges til Bootstraps-faner undefineds og undefined ved at indstille deres aktive tilstand med en betinget:

undefined

Vi kan nu ikke kun linke til bestemte sider for hver fane, men også opretholde den aktuelt åbne fane, selv når besøgende kopierer og indsætter links til vores websted. Pænt!

blue arrow to the left
Imaginary Cloud logo

Konklusion

Som jeg håber, at denne artikel hjælper med at fremhæve, er Pagy ikke kun meget ydende (se Forrige indlæg om Pagy) men også meget behagelig at bruge og let at tilpasse.

Ting som at omdøbe sideparameteren er efter min mening endnu mere ligetil at gøre med Pagy end med will_paginate eller Kaminari.

Tiden vil vise, om Pagy bliver den foretrukne perle for Rails, når det kommer til paginering, jeg tror bestemt, at det har potentiale til at blive netop det.

Ved Imaginær sky vi arbejder med en bred teknisk stak, inklusive Ruby on Rails. Hvis du har brug for hjælp til denne teknologi eller lignende i dit softwareudviklingsprojekt, har vi et team af eksperter, der venter på dig! Send os en linje her!

Ready for a UX Audit? Book a free call

Fandt du denne artikel nyttig? Du kan måske også lide disse!

blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
Chris Seelus
Chris Seelus

En iværksætter fra Bayern, der i øjeblikket arbejder på web- og mobilappbaseret software til kvalitetsstyring. Virkelig glad for Ruby on Rails og React Native.

Read more posts by this author

People who read this post, also found these interesting:

Dropdown caret icon