2

Je n'arrive pas à faire fonctionner la gemme Act_as_taggable. J'ai suivi plusieurs tutoriels et même vu le à jour Railscast sur cette question, mais mon principal problème avec la méthode liste_balise, j'utilise Rails 4Agit comme taggable Sur les rails de gem ne fonctionne pas

Je l'ai fait ce qui suit:

joyau « agit, comme -taggable-on », '~> 3,4' (fourni) râteau acts_as_taggable_on_engine: installation: migrations (rake db: migrer; restart server) Ajouté de acts_as_taggable à mon Blog.rb liste_balise Passé par params coffre-fort dans BlogsController Placée cela en mon _form partiel:

 <div class="field"> 
     <%= f.label :tag_list, "Tags (separated by commas)" %><br /> 
     <%= f.text_field :tag_list %> 
     </div> 

Lorsque je modifie un article de blogue, les balises ne sont pas séparées par des virgules, même si, après avoir soumis le formulaire, j'ai placé des virgules après chaque balise. Dans la console de rails, j'ai vérifié que liste_balise est pas une méthode parce que je continue à recevoir l'erreur

 undefined method `tag_list' for #<Class:0x007fa668cb03e8> 

Et donc je ne l'ai pas été en mesure d'ajouter des balises à un poste de Blog. S'il vous plaît aider

Répondre

0

s'il vous plaît assurez-vous que vous ajoutez ces lignes sur le modèle

acts_as_taggable # Alias for acts_as_taggable_on :tags 
    acts_as_taggable_on :skills 

utiliser votre modèle objet sous forme

@blog.tag_list_on(:skills_tags) 
+0

Je pensais que je n'ai pas besoin de acts_as_taggable_on si je veux juste des balises, the acts_as_taggable_on: compétences n'est pas celui pour un type spécifique de balise plutôt qu'un type générique de balise – Zippo9

+0

pouvez-vous s'il vous plaît regarder ce lien son description de nombreuses options https: // github.com/mbleigh/acts-as-taggable-on – jayesh

+0

Je l'ai lu mais je ne suis pas sûr de savoir comment configurer tag_list. Je n'ai pas été en mesure d'ajouter des tags à mon application et j'ai du mal à suivre le doc – Zippo9

1

EDIT: J'utilise Rails 4 mais et la version de pierres précieuses est 3.5.0. Je rencontre des problèmes avec la même gemme et c'est ce que j'ai fait.

class Common < ActiveRecord::Base 
    # ... 
    acts_as_taggable 
    # ... 
end 

Dans le contrôleur:

class CommonsController < ApplicationController 
    # ... 
    def my_params 
    params.require(:common).permit(
     # ... 
     :tag_list, 
     # ... 
    ) 
    end 
    #... 
end 

Et dans le modèle:

<%= form_for @common do |f| %> 
    <!-- ... --> 
    <p> 
    <%= f.label :tag_list %> <%= f.text_field :tag_list %> 
    </p> 
    <!-- ... --> 
<% end %> 

Cela a fonctionné pour moi, mais:

  • Quand j'écris une liste de tags séparés par une virgule, ils sont sauvegardés correctement. Par exemple: "rouge, vert, bleu". Mais, lorsque le formulaire est chargé à nouveau, les virgules disparaissent du champ de texte, comme dans "rouge vert bleu". Si je sauvegarde à nouveau le formulaire, une nouvelle étiquette est créée: "rouge vert bleu".

Si je crée un attribut virtuel dans le modèle, il fonctionne, mais je pense que casse le comportement normal de la méthode liste_balise dans la gemme:

class Common < ActiveRecord::Base 
    # ... 
    acts_as_taggable 
    # ... 
    def tag_list 
    tags.join(', ') 
    end 
end 

espoir que cela vous aide de quelque façon ..