[RUBY] [Rails] Comment introduire le kaminari avec Slim et changer le design

Cible

ezgif.com-video-to-gif.gif

Environnement de développement

・ Rubis: 2.5.7 Rails: 5.2.4 ・ Vagrant: 2.2.7 -VirtualBox: 6.1 ・ Système d'exploitation: macOS Catalina

supposition

Ce qui suit a été mis en œuvre.

Présentation minceIntroduction de Bootstrap 3

la mise en oeuvre

1. Présentez Gem

Gemfile


gem 'kaminari'

Terminal


$ bundle

2. Paramètres de mise en page

** ① Lors du réglage avec le contrôleur **

books_controller.rb


def index
  @books = Book.all.page(params[:page]).per(1)
end

.page(params[:page]) ➡︎ Spécifiez le nombre de pages dans la nation de page.

.per(5) ➡︎ Spécifiez le nombre d'éléments à afficher par page. (Définir sur 1 dans ce cas)

** ② Lors de la création d'un fichier de paramètres séparément **

Terminal


$ rails g kaminari:config

Les fichiers suivants sont créés dans config / initializers.

kaminari_config.rb


# frozen_string_literal: true
Kaminari.configure do |config|
  # config.default_per_page = 25
  # config.max_per_page = nil
  # config.window = 4
  # config.outer_window = 0
  # config.left = 0
  # config.right = 0
  # config.page_method_name = :page
  # config.param_name = :page
  # config.params_on_first_page = false
end

スクリーンショット 2020-06-05 10.23.10.png

config.default_per_page ➡︎ Nombre d'éléments affichés par page

config.max_per_page ➡︎ Nombre maximum d'éléments affichés par page

config.window ➡︎ Définissez le nombre de pages à gauche et à droite pour afficher les liens de la page actuelle (l'image est définie sur 1)

config.outer_window ➡︎ Définissez le nombre de pages de liens gauche et droit affichées à partir des première et dernière pages.

config.left ➡︎ Définissez le nombre de pages de liens affichées à partir de la première page (l'image est définie sur 3)

config.right ➡︎ Définissez le nombre de pages de liens affichées à partir de la dernière page (l'image est définie sur 2)

config.page_method_name ➡︎ Définir le nom de la méthode

config.param_name ➡︎ Définissez le nom du compteur de salon

config.params_on_first_page ➡︎ Veuillez me dire qui sait quels sont les paramètres ici.

3. Modifier la vue

slim:books/index.html.slim


/Postscript
= paginate @books

4. Créer / modifier la vue kaminari

** ① Créez un fichier de vue avec Bootstrap3 appliqué **

Terminal


$ rails g kaminari:views bootstrap3

** ② Centré **

Entourez un div avec la classe auxiliaire Bootstrap3 (text-center).

slim:kaminari/_paginator.html.sim


= paginator.render do
  /Postscript
  .text-center
    ul.pagination
      == first_page_tag unless current_page.first?
      == prev_page_tag unless current_page.first?

      - each_page do |page|
        - if page.left_outer? || page.right_outer? || page.inside_window?
          == page_tag page
        - elsif !page.was_truncated?
          == gap_tag

      == next_page_tag unless current_page.last?
      == last_page_tag unless current_page.last?

** * Si l'affichage semble étrange ** スクリーンショット 2020-06-05 10.57.22.png

Si l'affichage ci-dessus est affiché, il manque un = dans _paginator.html.sim, alors modifiez-le.

slim:kaminari/_paginator.html.sim


//Changer avant
= paginator.render do
  .text-center
    ul.pagination
      = first_page_tag unless current_page.first?
      = prev_page_tag unless current_page.first?

      - each_page do |page|
        - if page.left_outer? || page.right_outer? || page.inside_window?
          = page_tag page
        - elsif !page.was_truncated?
          = gap_tag

      = next_page_tag unless current_page.last?
      = last_page_tag unless current_page.last?

//Après le changement
= paginator.render do
  .text-center
    ul.pagination
      == first_page_tag unless current_page.first?
      == prev_page_tag unless current_page.first?

      - each_page do |page|
        - if page.left_outer? || page.right_outer? || page.inside_window?
          == page_tag page
        - elsif !page.was_truncated?
          == gap_tag

      == next_page_tag unless current_page.last?
      == last_page_tag unless current_page.last?

5. Changer le design

** ① Editez ʻapplication.rb` **

config/application.rb


module Bookers2Debug
  class Application < Rails::Application
    config.load_defaults 5.2
    config.i18n.default_locale = :ja #Postscript
  end
end

** ② Créez ja.yml **

Terminal


$ touch config/locales/ja.yml

** ③ Modifiez ja.yml **

★ Si vous souhaitez utiliser le japonais

ja.yml


ja:
  views:
    pagination:
      first: "&laquo;la première"
      last: "dernier&raquo;"
      previous: "&lsaquo;Avant"
      next: "Suivant&rsaquo;"
      truncate: "..."

スクリーンショット 2020-06-05 10.53.54.png

★ Si vous voulez en faire une icône

Installez Font Awesome à partir du lien ci-dessous et éditez ja.yml. Comment installer Font Awesome

ja.yml


ja:
  views:
    pagination:
      first: <i class="fas fa-angle-double-left"></i>
      last: <i class="fas fa-angle-double-right"></i>
      previous: <i class="fas fa-angle-left"></i>
      next: <i class="fas fa-angle-right"></i>
      truncate: "..."

スクリーンショット 2020-06-05 10.54.10.png

Recommended Posts

[Rails] Comment introduire le kaminari avec Slim et changer le design
[Avec des astuces de retour] Comment présenter React aux rails les plus simples
Comment créer une API avec GraphQL et Rails
[Rails] Comment créer une table, ajouter une colonne et changer le type de colonne
Comment changer l'action avec plusieurs boutons d'envoi
[Rails] Comment changer le nom de colonne de la table
[Explication approximative] Comment séparer le fonctionnement de l'environnement de production et de l'environnement de développement avec Rails
Comment exécuter React et Rails sur le même serveur
Comment démarrer avec Slim
Comment installer jQuery dans Rails 6
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
[Rails] Comment changer le titre de la page du navigateur pour chaque page
[Rails 5] Comment afficher l'écran de changement de mot de passe lors de l'utilisation de l'appareil
Comment changer le nom de l'application dans les rails
[Rails] Comment utiliser la méthode de la carte
Comment trouver les dizaines et les unités
[Rails 5.x] Comment introduire des polices gratuites
Comment créer un environnement Rails 6 avec Docker
Comment décorer CSS sur les boutons radio de rails6 form_with (helper)
Comment modifier le nombre maximum et maximum de données POST dans Spark
(Pour les débutants) [Rails] Technologie de gain de temps! Comment installer et utiliser Slim
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
Comment comparer uniquement le temps avec Rails (de quelle heure à quelle heure, quelque chose comme)
Je veux introduire un comité avec des rails sans devenir trop sale
[Rails] Comment appliquer le CSS utilisé dans l'application principale avec Administrer
[swift5] Comment changer la couleur de TabBar ou la couleur de l'élément de TabBar avec le code
[Ruby on Rails] Comment se connecter avec seulement votre nom et mot de passe en utilisant le bijou
[Rails] Comment décider de la destination par "voies ferrées"
Comment trouver le score total et le score moyen
[Rails] Comment créer un environnement avec Docker
[Rails] Comment émettre des messages de réussite et d'erreur
Essayez de résumer la disposition commune avec des rails
Comment vérifier les commandes Rails dans le terminal
[Ruby on Rails] Modifiez la date de mise à jour et la date de création selon votre notation préférée
Comment utiliser ToolBar avec la super marge Part1 Définir les caractères et changer les couleurs
[Rails6] Comment connecter la fonction d'affichage générée par Scaffold avec la fonction utilisateur générée par devise
[Rails] Comment enregistrer plusieurs enregistrements dans la table intermédiaire avec une association plusieurs-à-plusieurs
Présentez Docker à l'environnement de développement et à l'environnement de test des applications Rails et MySQL existantes
[Rails] Comment utiliser la méthode d'assistance utilisée dans l'application principale avec Administrer
Comment partager côté hôte (Windows) et côté invité (CentOS 7) avec VirtualBox
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
Comment écrire des rails
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker
Comment supprimer un objet new_record construit avec Rails