
kontaktiere uns


•
02. Januar 2023
In einem letzter Beitrag auf dem Imaginary Cloud-Blog Tiago sprach über Bezahlen, das neue leistungsstarke Kind auf dem Block, wenn es um die Paginierung in Rails (oder wirklich jedem Rack-basierten Ruby-Framework) geht.
Bei diesem Follow-up handelt es sich um eine Anleitung, bei der die integrierte kompakt
Extra, das eine neue Art von Benutzeroberfläche bietet durch die pagy_nav_bootstrap_compact
Helfer, der es ein wenig an unsere Bedürfnisse anpasst.
Ich werde eine kleine Beispiel-App mit einigen Testdaten verwenden, die mit dem Faker-Gem generiert wurden, um Pagys Fähigkeiten zu demonstrieren. Sie können sehen, was wir bauen und das untersuchen Code auf GitHub.
Neben dem Standard-Frontend-Helfer pagy_nav
, was eine sehr einfache Paginierung generiert, es gibt zwei weitere (kompakt
, Bootstrap
), wenn Sie also eine andere Art der Paginierung verwenden oder auf Bootstrap verzichten möchten, ist das auch völlig in Ordnung.
Fügen Sie zuerst Pagy zu Ihrem Gemfile hinzu und führen Sie es aus Bundle-Installation
:
Fügen Sie die Daten der Anwendung zur Datenbank hinzu:
Erstellen Sie den zahl.rb
Initialisierer für die App:
Binden Sie das Pagy-Backend in einen Controller ein, um es nur dort oder drinnen verfügbar zu machen Anwendungscontroller
um es weltweit verfügbar zu machen:
Jetzt sind Sie so eingerichtet, dass Sie Ihre ActiveRecord-Sammlungen innerhalb von Controllern paginieren, zu denen das Pagy-Backend gehört, das wären alle Controller, die von Ihrem erben Anwendungscontroller
wenn du es dort aufgenommen hast. Nehmen wir an, Sie haben eine Index-Aktion, die einen Weltraumnebel anzeigt, den Sie paginieren möchten. Sie könnten das so machen:
Binde das Frontend in einen Helfer ein oder in Anwendungshelfer
um es weltweit verfügbar zu machen:
Um deinen paginierten Nebel√¶ zu rendern, kannst du jetzt einen der Frontend-Helfer von Pagys verwenden, etwa so:
In der Standardeinstellung pagy_nav_bootstrap_compact
wird so etwas rendern:
Sie können die Textbeschriftungen anpassen, wenn Sie erfordert 'payy/extra/i18n'
Kopieren Sie in einem Initialisierer das Standard-Pagy-Wörterbuch in Ihr config/locales
und ändern oder übersetzen Sie die Beschriftungen, wie Sie möchten.
Über den Initialisierer können Sie auch Optionen wie die Anzahl der Elemente pro Seite und vieles mehr festlegen.
Um das Styling anzupassen, können wir ein bisschen SASS verwenden:
Das wird @extend
Stiefeletten btn-outline-dunkel
Stil, ersetze den Text der vorherigen/nächsten Buttons durch Pfeilsymbole und gestalte den Eingang
.
Manchmal ist es notwendig, mehrere Sammlungen pro Controller-Aktion zu paginieren.
Im folgenden Beispiel rendere ich zwei Sammlungen, Stars & Nebulae, auf einer Seite in zwei Bootstrap-Tabs.
Mit Pagy ist es einfach, sie einzeln zu paginieren und zu navigieren.
In der Controller-Aktion, in der ich die Pagy-Sammlungen definiere, ist lediglich das Hinzufügen eines page_param
mit einem Symbol meiner Wahl zu jeder Kollektion:
Jetzt stellt Pagy diesen Parameter automatisch den Navigationslinks voran und extrahiert sie beim Rendern einer Ansicht aus einer URL. Extrem einfach und bequem!
Um auch den Status des aktuell aktiven Tabs beizubehalten, können wir Pagys Option verwenden, um beliebige Parameter hinzuzufügen:
Dieser Parameter kann für Bootstraps-Registerkarten verwendet werden .nav-link
s und .tab-Bereich
indem sie ihren aktiven Zustand mit einer Bedingung festlegen:
Wir können jetzt nicht nur für jeden Tab auf bestimmte Seiten verlinken, sondern auch den aktuell geöffneten Tab beibehalten, auch wenn Besucher Links zu unserer Website kopieren und einfügen. Ordentlich!
Wie ich hoffe, dieser Artikel hilft, hervorzuheben, ist Pagy nicht nur sehr performant (siehe vorheriger Beitrag über Pagy), aber auch sehr komfortabel zu bedienen und einfach zu personalisieren.
Dinge wie das Umbenennen des Seitenparameters sind meiner Meinung nach mit Pagy noch einfacher zu bewerkstelligen als mit will_paginate oder Kaminari.
Die Zeit wird zeigen, ob Pagy das Juwel der Wahl für Rails wird, wenn es um Paginierung geht. Ich denke sicherlich, dass es das Potenzial hat, genau das zu werden.
Bei Imaginary Cloud wir arbeiten mit einem breiten Tech-Stack, einschließlich Ruby on Rails. Wenn Sie in Ihrem Softwareentwicklungsprojekt Hilfe mit dieser oder ähnlichen Technologien benötigen, wartet ein Expertenteam auf Sie! Schreiben Sie uns eine Nachricht hier!
Fanden Sie diesen Artikel hilfreich? Diese könnten dir auch gefallen!
Ein Unternehmer aus Bayern, der derzeit an Web- und Mobile-App-Software für das Qualitätsmanagement arbeitet. Ich mag Ruby on Rails und React Native sehr.
People who read this post, also found these interesting: