allt
Företag
datavetenskap
design
utveckling
vår resa
Strategimönster
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
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 kompakt extra som erbjuder en ny typ av användargränssnitt genom pagy_nav_bootstrap_compact 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 page_nav, som kommer att generera mycket grundläggande paginering, det finns två andra (kompakt, bootstrap), 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 buntinstallation:

Lägg till programmets data i databasen:

Skapa sida.rb initialiserare för appen:


Inkludera Pagy-backend i en styrenhet för att göra den tillgänglig precis där eller inuti Programstyrenhet 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 Programstyrenhet 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 ApplikationHelper 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 pagy_nav_bootstrap_compact kommer att återge något så här:

Pagy Nav Bootstrap Compact

Du kan anpassa textetiketterna om du kräver ”sida/extra/i18n” i en initialiserare, kopiera den vanliga Pagy-ordlistan till din konfiguration/lokaliteter 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:


Detta kommer att @extend Stövremmar btn-outline-mörk stil, ersätt föregående/nästa knapps text med pilikoner och stil inmatning.

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 page_parameter med en symbol efter eget val till varje kollektion:


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:


Denna parameter kan användas för Bootstraps-flikar .nav-länks och .tab-ruta genom att ställa in deras aktiva tillstånd med ett villkorat:


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
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

Människor som läste det här inlägget tyckte också att dessa var intressanta:

pil vänster
pilen till höger
Dropdown caret icon