[Ruby on Rails] Paging-Funktion eingeführt

Ziel

Erstellen Sie eine Paging-Funktion und Verhindert eine Verlangsamung der Bildladegeschwindigkeit beim Anzeigen einer Liste

Entwicklungsumgebung

ruby 2.5.7 Rails 5.2.4.3 OS: macOS Catalina

Annahme

Dieses Mal werden wir gem'kaminari 'einführen und die Paging-Funktion implementieren.

Flow bis zur Einführung von Kaminari

Gemfile


gem 'kaminari','~> 1.2.1'

Terminal


$ bundle install
$ rails g kaminari:config
$ rails g kaminari:views default

Damit ist die Installation abgeschlossen.

Wie benutzt man

Ich werde diejenigen vorstellen, die ich oft persönlich benutze. https://github.com/kaminari/kaminari Eine detaillierte Verwendung wird hier beschrieben Wenn Sie interessiert sind, sehen Sie bitte hier. Es ist jedoch alles auf Englisch.

Grundlegendes Paging

Installieren Sie Folgendes, wo Sie eine Seite erstellen möchten. Dort finden Sie auch Links zu den Seiten 1 und 2 sowie neben diesem Speicherort.

erb:app/views/homes/index.html.erb


<%= paginate @posts %>

Paging kann implementiert werden, indem der Controller auf diese Weise geschrieben wird.

app/controllers/homes_controller.rb


@posts = posts.page(params[:page])
Ergänzung [Seite (params [: Seite])] Es ist in Ordnung, diese Seite (params [: page]) ≒ all zu denken.

Paging sortieren

Sie können die Reihenfolge umkehren, indem Sie der Beschreibung des Controllers einen Hinweis hinzufügen.

app/controllers/homes_controller.rb


@posts = posts.page(params[:page]).reverse_order

Geben Sie die Anzahl der Elemente an, die pro Seite angezeigt werden sollen

config/initializers/kaminari_config.rb


  Kaminari.configure do |config|
    config.default_per_page = 5 #Geben Sie die maximale Anzahl von Elementen an, die pro Seite für alle Seiten angezeigt werden können, die Kaminari mit dieser Nummer verwenden.
  end

Individuell anzeigen Wenn Sie die Anzahl der Elemente angeben, die pro Seite angezeigt werden sollen

app/controllers/homes_controller.rb


@posts = posts.page(params[:page]).per(10)
Ergänzung [Anzeigepriorität] Da die Nummer in kaminari_config.rb Vorrang hat, kaminari_config.rb >= homes_controller.rb Bitte geben Sie die Überlegenheit oder Unterlegenheit solcher Zahlen an.

Ändern Sie die Anzeige

Wenn Sie als nächstes, letztes usw. ändern möchten.

1 gem'rails-i18n 'eingeführt 2 Erstellen Sie eine Datei config / Locations / Ja.yml 3 Bearbeiten Sie ja.yml

Wenn Sie das oben genannte tun, ist es OK. [Referenz von ja.yaml]

ja.yaml


ja
  views:
    pagination:
      first: "≪"
      previous: "<"
      next: ">"
      last: "≫"

Bei der Anwendung auf ein Array

Wenn der Wert bei der Implementierung mit der obigen Methode ein Array ist, wird er nicht angezeigt Es sollte wie folgt beschrieben werden.

app/controllers/homes_controller.rb


@posts = Kaminari.paginate_array(Array).page(params[:page])

Aktuelle Beschreibung: [Ruby on Rails] Ranking-Anzeige (Gesamt, Durchschnittswert)

Andere Funktionen

[Rails] Gehe automatisch zur nächsten Seite! !! Unendliches Scrollen der Pagenation mit jscroll

Es gibt viele andere. Wenn Sie also interessiert sind, probieren Sie es bitte aus.

Zusammenfassung

Die Einführung selbst ist nicht so schwierig, aber ohne die Paging-Funktion Wenn die Site wächst, wird sie langsam geladen und ist unbrauchbar. Eine Art Paging-Funktion ist unerlässlich.

Auf Twitter werden auch Technologien und Ideen hochgeladen, die nicht auf Qiita hochgeladen wurden Ich wäre Ihnen dankbar, wenn Sie mir folgen könnten. Klicken Sie hier für Details https://twitter.com/japwork

Recommended Posts