[JAVA] [Rails] Implémentation de la fonction de balise à l'aide de la fonction agit-as-taggable-on et de la fonction de complétion d'entrée de balise à l'aide de tag-it

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

Implémentation de la fonction tag

1. Présentez Gem

Gemfile


gem 'acts-as-taggable-on'

Gemfile


$ bundle

2. Ajouter une table

Terminal


$ rails acts_as_taggable_on_engine:install:migrations

Terminal


$ rails db:migrate

schema.rb


create_table "taggings", force: :cascade do |t|
  t.integer "tag_id"
  t.string "taggable_type"
  t.integer "taggable_id"
  t.string "tagger_type"
  t.integer "tagger_id"
  t.string "context", limit: 128
  t.datetime "created_at"
  t.index ["context"], name: "index_taggings_on_context"
  t.index ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
  t.index ["tag_id"], name: "index_taggings_on_tag_id"
  t.index ["taggable_id", "taggable_type", "context"], name: "taggings_taggable_context_idx"
  t.index ["taggable_id", "taggable_type", "tagger_id", "context"], name: "taggings_idy"
  t.index ["taggable_id"], name: "index_taggings_on_taggable_id"
  t.index ["taggable_type"], name: "index_taggings_on_taggable_type"
  t.index ["tagger_id", "tagger_type"], name: "index_taggings_on_tagger_id_and_tagger_type"
  t.index ["tagger_id"], name: "index_taggings_on_tagger_id"
end

create_table "tags", force: :cascade do |t|
  t.string "name"
  t.datetime "created_at"
  t.datetime "updated_at"
  t.integer "taggings_count", default: 0
  t.index ["name"], name: "index_tags_on_name", unique: true
end

3. Modifiez le modèle

book.rb


#Postscript
acts_as_taggable

4. Modifiez le contrôleur

Ajoutez tag_list au paramètre strong.

books_controller.rb


def book_params
  params.require(:book).permit(:title, :body, :tag_list)
end

4. Modifier la vue

slim:books/new.html.slim


/Postscript
= f.label :tag_list, 'marque'
br
= f.text_field :tag_list, value: @book.tag_list.join(','), id: 'tags'
br

tag_list.join(',') ➡︎ Vous pouvez ajouter plusieurs balises en les séparant par des virgules (,).

slim:books/index.html.slim


/Postscript
td
  - book.tag_list.each do |tag|
    span.label.label-default style='margin-right: 10px;'
      = tag

Mise en œuvre de la fonction de saisie semi-automatique

1. Téléchargez et déplacez les fichiers requis

** ① Accédez au lien ci-dessous ** tag-it GitHub

** ② Cliquez sur "Cloner ou télécharger" ** スクリーンショット 2020-06-15 20.41.58.png

** ③ Cliquez sur Télécharger ZIP ** スクリーンショット 2020-06-15 20.42.03.png

** ④ Déplacer le fichier **

  1. Décompressez le fichier téléchargé.

  2. Placez jquery.tagit.css et tagit.ui-zendesk.css dans le dossier css sous ʻassets / stylesheets`.

  3. Placez tag-it.js dans le dossier js sous ʻassets / javascripts`. スクリーンショット 2020-06-15 20.48.41.png

2. Présentez Gem

Gemfile


gem 'jquery-ui-rails'

Terminal


$ bundle

3. Modifiez ʻapplication.js`

application.js


//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require jquery
//= require jquery-ui //Postscript
//= require bootstrap-sprockets
//= require tag-it
//= require_tree .

4. Editez ʻapplication.scss`

application.scss


/*
 *= require_tree .
 *= require jquery.tagit //Postscript
 *= require tagit.ui-zendesk //Postscript
 *= require_self
*/

Recommended Posts

[Rails] Implémentation de la fonction de balise à l'aide de la fonction agit-as-taggable-on et de la fonction de complétion d'entrée de balise à l'aide de tag-it
[Rails] Fonction de gestion des balises (en utilisant des actes comme des balises)
[Rails] Implémentation de la saisie d'adresse automatique avec jpostal et jp_prefecture
[Rails] Implémentation de la fonction de recherche en utilisant le ransack de gem
[Rails] Implémentation de la fonction d'agrandissement d'image à l'aide de lightbox2
[Rails] Implémentation de la fonction glisser-déposer (avec effet)
[Rails] Implémentation de la fonction de catégorie multicouche en utilisant l'ascendance "Préparation"
[Rails] Implémentation de la fonction de catégorie
[Rails] Implémentation de la fonction de catégorie multicouche à l'aide de l'ascendance "seed edition"
[Rails] Implémentation de la fonction tutoriel
[Rails] Implémentation d'une fonction similaire
[Rails] Implémentation de la fonction de catégorie multicouche en utilisant l'ascendance "Edit Form Edition"
[Rails] Implémentation de la fonction de catégorie multicouche à l'aide de l'ascendance "Formulaire de création"
[Rails] Implémentation de la fonction d'importation CSV
[Rails] Implémentation asynchrone de la fonction similaire
[Rails] Implémentation de la fonction de prévisualisation d'image
[Rails] À propos de la mise en œuvre de la fonction similaire
[Rails] Implémentation de la fonction de retrait utilisateur
[Rails] Implémentation de la fonction d'exportation CSV
[Rails] Implémentation d'une nouvelle fonction d'enregistrement au format assistant à l'aide de devise
[Rails] [jQuery] Implémentation de fonction asynchrone avec remote: true et js.erb
[Rails] Implémentation de la fonction coupon (avec fonction de suppression automatique par traitement par lots)
Implémentation de la fonction d'authentification des utilisateurs à l'aide de devise (2)
Rails Ajout d'une fonction de connexion facile et facile
Rails [Pour les débutants] Implémentation de la fonction de commentaire
Implémentation des onglets à l'aide de TabLayout et ViewPager
Implémentation de la fonction d'authentification des utilisateurs à l'aide de devise (3)
[Ruby on rails] Implémentation d'une fonction similaire
[Rails] Je vais expliquer la procédure d'implémentation de la fonction follow en utilisant form_with.
[Rails] Procédure d'implémentation de la fonction pour taguer les posts sans gem + la fonction pour affiner et afficher les posts par tags
Implémentation de la fonction de connexion Ruby on Rails (Session)
Ajoutez une fonction de balise aux rails. Utilisez actes-comme-taggable-on
Fonction de tag à l'aide d'actes-comme-taggable-on sur Devise My Memo
[Nuxt / Rails] Implémentation POSTed en utilisant axios et devise_token_auth
[Rails] Mise en œuvre du classement des nombres PV à l'aide de l'impressionniste
[Rails] Implémentation du diaporama d'images à l'aide de Bootstrap 3
Implémentation de la fonction de connexion Ruby on Rails (édition de devise)
Implémentation de la fonction Rails CRUD ② (édité et détaillé cette fois)
Implémentation de la fonction de recherche
[rails] fonction de classement des balises
Rails6: saisissez les données initiales d'ActionText à l'aide de seed
Mise en œuvre de la fonction de pagénation
Mise en place de la fonction de tri des rails (affichés par ordre de nombre de like)
Implémentation de la suppression d'ajax dans Rails
Implémentation de la fonction de recherche floue Rails