0

Je voudrais un système de marquage où je puisse séparer les tags par l'utilisateur qui les a créés. J'ai suivi Railscast # 167 à propos de la configuration des balises en utilisant des attributs virtuels, mais cela ne me permet que d'appeler @ post.tags pour trouver les balises d'un post, mais je ne peux pas appeler @ user.tags et trouver toutes leurs balises.Rails 3: Attribut virtuel Railscast # 167 pour la création de tags - @ user.tags

Comment pourrais-je augmenter ceci afin que @ user.posts.tag ("music") retourne tous ses messages avec le tag music?

Merci pour une aide ou un aperçu de ce que je fais mal.

Répondre

2

@user.posts retourne un tableau, vous pouvez filtrer ce assez facilement avec quelque chose comme ceci: cependant,

@user.posts.select do |post| 
    post.tag_names.include? "music" 
end 

Vous pourriez, courir dans un problème avec les dossiers ne sont pas chargés avec enthousiasme dans cette situation. Quelque chose comme ceci devrait prendre soin de cela:

Post.includes(:taggings => :tags).where("posts.user_id = ?", @user.id).select do |post| 
    post.tag_names.include? "music" 
end 
Questions connexes