2011-01-04 2 views

Répondre

8

Vous devez définir la variable de classe delimiter en classe ActsAsTaggableOn :: TagList

Dans un initialiseur ajouter que:

ActsAsTaggableOn::TagList.delimiter = ' ' 
+0

Brillante, c'est exactement ce dont j'avais besoin. –

+0

trouvé dans la lecture du code :) – shingara

+8

dans la dernière version: ActsAsTaggableOn.delimiter = '' – linjunhalida

1

Je ne voudrais pas aller le piratage à l'intérieur des actes-as-tagable-on, Il suffit de créer une autre méthode sur la classe qui l'implémente:

class MyClass < ActiveRecord::Base 
    acts_as_taggable 

    def human_tag_list 
    self.tag_list.gsub(', ', ' ') 
    end 

    def human_tag_list= list_of_tags 
    self.tag_list = list_of_tags.gsub(' ', ',') 
    end 
end 

MyClass.get(1).tag_list # => "tagone, tagtwo, tagthree" 
MyClass.get(1).human_tag_list # => "tagone and tagtwo and tagthree" 
MyClass.get(1).human_tag_list = "tagone tagtwo tagthree" 
+0

Cela ne fonctionnera pas pour mon application, car l'utilisateur assignera la tag_list à travers un champ de texte (par exemple '<% = f. text_field: tag_list%> '), et je veux qu'ils soient capables de taper des espaces au lieu de virgules pour séparer les balises. Mais c'est une bonne solution pour gérer la présentation des tags après leur création. –

+0

Dans ce cas, je vais mettre à jour le code pour gérer ce cas. – stef

Questions connexes