[RUBY] Créer une fonction de filtrage en utilisant actes-as-taggable-on

environnement

Préparation préalable

Les fonctions suivantes sont supposées avoir été créées.

--Fonction de publication --Détails de l'article --Installer la gemme --Créer une table --Introduction de saccage

procédure

Enregistrer la balise

Ajoutez ce qui suit au modèle que vous souhaitez étiqueter.

micropost.rb


acts_as_taggable

Ajoutez ce qui suit aux paramètres forts à enregistrer. Je posterai également créer au cas où.

microposts_controller.rb


 def create
    @micropost = Micropost.new(micropost_params.merge(user_id: current_user.id))
    if @micropost.save
      redirect_to @micropost, flash:{success: "Publié"}
    else
      render :new
    end
 end

 def show
    @micropost = Micropost.find(params[:id])
 end

 private

 def micropost_params
   params.require(:micropost).permit(:content, :image, :tag_list)
 end

Créer et afficher des vues

Ajoutez ce qui suit à votre vue: Créez une vue d'entrée et une vue d'affichage.

new.html.slim


= form_with model:  micropost, local: true do |f|
  .form-group
    = f.label :tag
    //,Séparé par
    = f.text_field :tag_list, value: @micropost.tag_list.join(","), class: "form-control"
  = f.submit "Envoyer", class: "btn btn-primary"

show.html.slim


table.table.table-hover
    today
      tr
        th = Micropost.human_attribute_name(:tag)
        td
          - @micropost.tag_list.each do |tag|
            = link_to tag, microposts_path(tag_name: tag), class: "micropost_tags__link"

Implémentation de la fonction de filtrage

microposts_controller.rb


  def index
    @q = Micropost.ransack(params[:q])
    if params[:tag_name]
      #Renvoie des informations pour le même message sélectionné
      @microposts = Micropost.tagged_with(params[:tag_name]).page(params[:page])
    elsif params[:q]
      #Renvoyer une liste de messages
      @microposts = @q.result(distinct: true).page(params[:page])
    else
      @microposts = Micropost.page(params[:page])
    end
  end

À la fin

Si vous faites une erreur, veuillez faire une demande de modification ou un commentaire.

Recommended Posts

Créer une fonction de filtrage en utilisant actes-as-taggable-on
Créez une fonction de connexion à l'aide de l'option Swift
Créer une loterie avec Ruby
Créez un écran d'authentification de connexion à l'aide de la fonction de session
Créer un projet Tomcat à l'aide d'Eclipse
[Rails] Fonction de gestion des balises (en utilisant des actes comme des balises)
Créer un projet Java à l'aide d'Eclipse
[Procédure d'implémentation] Créer une fonction d'authentification utilisateur à l'aide de sorcellerie dans Rails
Créez rapidement un environnement Web à l'aide de Docker
[Retrait des rails] Créez une fonction de retrait simple avec des rails
Créer un service d'API RESTful à l'aide de Grape
Créez instantanément un environnement Privoxy + Tor à l'aide de Docker
Créons une API REST à l'aide de WildFly Swarm.
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
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
Créez une application Spring Boot à l'aide d'IntelliJ IDEA
[Rails] J'ai créé une fonction de brouillon en utilisant enum
Créez un environnement de développement Java à l'aide de jenv sur votre Mac
Créer un site EC avec Rails 5 ⑨ ~ Créer une fonction de panier ~
Un mémorandum lors de la tentative de création d'une interface graphique à l'aide de JavaFX
[Rails DM] Créons une fonction de notification lorsque DM est envoyé!
Créer un projet Tomcat en utilisant Eclipse Pleiades All in One
Création d'un MOB à l'aide du plug-in Minecraft Java Mythicmobs | Préparation 1
Fonction de recherche à l'aide de [rails] ransack
Créer un calendrier avec Ruby
[Java] Créer un fichier temporaire
Créez un plugin VSCode.
Créez un terrain de jeu avec Xcode 12
Implémenter la fonction de catégorie en utilisant l'ancêtre
À propos de l'ajout d'une fonction similaire
Faire un diamant en utilisant Java
Comment créer une méthode
Créons une application TODO en Java 4 Implémentation de la fonction de publication
Comment créer un fichier jar et un fichier war à l'aide de la commande jar
Créez une application mémo avec Tomcat + JSP + Servlet + MySQL à l'aide d'Eclipse
[Rails 6] Comment créer un écran de saisie de formulaire dynamique à l'aide de cocoon
Créez un fichier statique qui développe les variables à l'aide de la classe ERB
Créons une application TODO en Java 6 Implémentation de la fonction de recherche
Créons une application TODO en Java 8 Implémentation des fonctions d'édition
Un moyen simple de créer une classe de mappage lors de l'utilisation de l'API
[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
(Ruby on Rails6) Créer une fonction pour modifier le contenu publié