Chris Seelus

02 januari 2023

Min läsning

Ruby on Rails: paginera tillståndsflikar med Pagy

I en senaste inlägget på Imaginary Cloud-bloggen, Tiago pratade om Pagy, det nya högpresterande barnet på blocket när det gäller paginering i Rails (eller egentligen något rackbaserat Ruby-ramverk).

Customized-Pagy-Navigation-Examples

Denna uppföljning är en instruktionsguide, med hjälp av den inbyggda undefined extra som erbjuder en ny typ av användargränssnitt genom undefined hjälpare, anpassa det lite till våra behov.

Jag kommer att använda en liten exempelapp med några testdata genererade med Faker-pärlan för att visa Pagys förmågor. Du kan se vad vi ska bygga och inspektera kod på GitHub.

Förutom standardfrontend-hjälpen undefined, som kommer att generera mycket grundläggande paginering, det finns två andra (undefined, undefined), så om du vill använda en annan typ av paginering eller gå utan Bootstrap, det är också helt bra.

blå pil till vänster
Imaginary Cloud-logotyp

Installation

Lägg först till Pagy i din Gemfile och kör undefined:

Lägg till programmets data i databasen:

Skapa undefined initialiserare för appen:

undefined

undefined

Inkludera Pagy-backend i en styrenhet för att göra den tillgänglig precis där eller inuti undefined För att göra den tillgänglig globalt:

Nu är du inställd på att paginera dina ActiveRecord-samlingar inuti styrenheter som inkluderar Pagy-backend, vilket skulle vara alla kontroller som ärver från din undefined Om du inkluderade det där. Låt oss säga att du har en indexåtgärd som visar en rymdnebulos¶ som du vill paginera, du kan göra det på detta sätt:

Inkludera frontend i en hjälpare eller i undefined För att göra den tillgänglig globalt:

För att rendera din paginerade nebulos¶ kan du nu använda en av Pagys frontend-hjälpare, så här:

Anpassa sidnumrering

Som standard undefined kommer att återge något så här:

Pagy Nav Bootstrap Compact

Du kan anpassa textetiketterna om du undefined i en initialiserare, kopiera den vanliga Pagy-ordlistan till din undefined och ändra eller översätta etiketterna hur du vill.

Via initialiseraren kan du också ställa in alternativ som antalet objekt per sida och mycket mer.

För att anpassa stylingen kan vi använda lite SASS:

undefined

Detta kommer att undefined Stövremmar undefined stil, ersätt föregående/nästa knapps text med pilikoner och stil undefined.

blå pil till vänster
Imaginary Cloud-logotyp

Paginera flera samlingar samtidigt

Ibland är det nödvändigt att paginera flera samlingar per styrenhetsåtgärd.

I följande exempel kommer jag att återge två samlingar, Stars & Nebulae, på en sida inuti två Bootstrap-flikar.

Med Pagy är det enkelt att paginera och navigera var och en av dem separat.

Inuti controller-åtgärden där jag definierar Pagy-samlingarna, allt som behövs är tillägget av en undefined med en symbol efter eget val till varje kollektion:

undefined

Nu kommer Pagy automatiskt att lägga till den parametern till navigeringslänkarna samt extrahera dem från en URL när du renderar en vy. Extremt enkelt och bekvämt!

blå pil till vänster
Imaginary Cloud-logotyp

Upprätthålla staten

För att också behålla den nuvarande aktiva fliken kan vi använda Pagys alternativ för att lägga till godtyckliga parametrar:

‍undefined

Denna parameter kan användas för Bootstraps-flikar undefineds och undefined genom att ställa in deras aktiva tillstånd med ett villkorat:

undefined

Vi kan nu inte bara länka till vissa sidor för varje flik, utan också behålla den för närvarande öppna fliken även när besökare kopierar och klistrar in länkar till vår webbplats. Snyggt!

blå pil till vänster
Imaginary Cloud-logotyp

Slutsats

Som jag hoppas att den här artikeln hjälper till att lyfta fram är Pagy inte bara mycket presterande (se Tidigare inlägg om Pagy) men också mycket bekväm att använda och lätt att anpassa.

Saker som att byta namn på sidparametern är enligt min mening ännu enklare att göra med Pagy än med will_paginate eller Kaminari.

Tiden kommer att visa om Pagy kommer att bli pärlan för Rails när det gäller paginering, Jag tror verkligen att det har potential att bli just det.

Vid Imaginärt moln vi arbetar med en bred teknisk stack, inklusive Ruby on Rails. Om du behöver hjälp med denna teknik eller liknande i ditt mjukvaruutvecklingsprojekt har vi ett team av experter som väntar på dig! Skicka oss en rad här!

Ready for a UX Audit? Book a free call

Hittade den här artikeln användbar? Du kanske gillar dessa också!

blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
Chris Seelus
Chris Seelus

En entreprenör från Bayern, arbetar för närvarande med webb- och mobilappbaserad programvara för kvalitetshantering. Riktigt förtjust i Ruby on Rails och React Native.

Läs fler inlägg av denna författare

People who read this post, also found these interesting:

Dropdown caret icon