kontakta oss

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

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.
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:
Som standard pagy_nav_bootstrap_compact kommer att återge något så här:

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

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

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.
Människor som läste det här inlägget tyckte också att dessa var intressanta: