Rieles: Etiquetas acts_as_taggable Ordenar más utilizados por un usuario
-
28-09-2019 - |
Pregunta
Me han establecido dos modelos: user
y post
. Cada post
belongs_to
un user
. post
s también tienen etiquetas, utilizando acts_as_taggable. En UserController#show
Quiero que las etiquetas de los usos de los usuarios, la clasificación de la mayoría acostumbrados a menos utilizada.
Obtener una lista de etiquetas no es difícil, pero ¿cómo puedo ordenar? Lo utilizo para encontrar las etiquetas:
@tags = []
@user.posts.each do |post|
@tags += post.tags
end
¿alguien puede explicar cómo puedo ordenar las etiquetas? Gracias.
Solución
se podría utilizar el método proporcionado por tag_counts plugin:
@user.posts.tag_counts
más información aquí: http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids
EDIT:
un simple código básico para clasificar:
@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]}
tal vez hay una mejor manera de hacerlo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow