Domanda

Ho creato due modelli: user e post. Ogni post belongs_to un user. posts hanno anche i tag, utilizzando acts_as_taggable. Su UserController#show voglio elencare i tag gli usi degli utenti, l'ordinamento dal più utilizzato al meno utilizzato.

Ottenere un elenco di tag non è difficile, ma come posso risolvere? Io lo uso per trovare i tag:

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

Qualcuno mi può spiegare come posso ordinare i tag? Grazie.

È stato utile?

Soluzione

è possibile utilizzare il metodo tag_counts fornito dal plugin:

@user.posts.tag_counts

maggiori informazioni qui: http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids

EDIT:

un semplice codice di base per l'ordinamento:

@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]}

Forse c'è un modo migliore di farlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top