J'utilise acts-as-taggable sur. Deux modèles: utilisateur et messages.Comment puis-je voir des balises pour tous les utilisateurs d'une instance de modèle?
Posts belongs_to :user
User has_many :posts
Messages act-as-taggable. Utilisateurs agit-comme-tagueur
Tout cela est simple et fonctionne. Cependant, j'ai un cas d'utilisation qui peut être en dehors de la façon dont ce plugin fonctionne.
Je veux que les posts puissent être étiquetés par plusieurs utilisateurs. Lorsqu'un tag est créé sur un poste d'un utilisateur, il ne montre pas lorsque vous effectuez les opérations suivantes:
p = Post.first
p.tag_list # this returns []
Si vous regardez le SQL généré, il sélectionne des enregistrements où « tagger_id » est NULL. Le tagger_id est, bien sûr, le user_id dans ce cas et n'est pas vraiment NULL.
Si vous y rentrez, vous pouvez obtenir ce que vous voulez.
p = Post.find(1) # get a post to work with
p.tags_from(p.user) # returns an array of the tags: ['cats','dogs','wildebeasts']
Cela fonctionne.
Maintenant, le problème est que je veux qu'un autre utilisateur puisse venir et ajouter une étiquette à la publication. Peut-être que cet utilisateur pensera que c'est utile. Supposons simplement qu'il est logique de le faire. Peut-être un modérateur ... peu importe.
Compte tenu de ce qui précède, comment aurais-je une liste de tous les tags sur un post donné en supposant que plus d'un utilisateur a ajouté des tags?
Soulagée,
NJ
Merci pour la réponse, mais une partie de ceci est particulière à ce plugin qui n'est pas très bien documenté et je n'en ai pas beaucoup pour creuser dans la source pour comprendre les choses. Pas encore de toute façon. :) –
Je pense que j'ai écrit trop. Avez-vous essayé mes suggestions dans mon dernier bloc de code? – danneu
Ne vous inquiétez pas d'écrire trop si vous êtes sur le sujet; désolé, je n'ai pas remarqué mon duplication de votre réponse. La seule chose que je dirais est d'éditer et de faire du p une variable d'instance @p sinon elle ne serait pas disponible pour la vue. – mark