Question

J'ai mis en place deux modèles: user et post. Chaque post belongs_to un user. posts ont également des balises, en utilisant acts_as_taggable. Sur UserController#show Je veux la liste des tags les utilisations de l'utilisateur, le tri de la plupart utilisés à moins utilisé.

Obtenir une liste des balises est pas difficile, mais comment puis-je les trier? J'utilise ceci pour trouver les tags:

@tags = []
@user.posts.each do |post|
  @tags += post.tags
end

Quelqu'un peut-il me expliquer comment je peux trier les balises? Merci.

Était-ce utile?

La solution

vous pouvez utiliser la méthode de tag_counts fournie par plug-in:

@user.posts.tag_counts

plus d'infos ici: http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids

EDIT:

un code de base simple pour le tri:

@tags = Hash.new(0)
@user.posts.each do |post|
  post.tags.each do |tag|
    @tags[tag] += 1 if @tags.has_key?(tag)
  end
end
# sorting
@tags.sort{|a,b| a[1] <=> b[1]}

peut-être il y a une meilleure façon de le faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top