Rails: Сортировать большинство acts_as_taggable Теги пользователями
-
28-09-2019 - |
Вопрос
Я настроил две модели: user
а также post
. Отказ Каждый post
belongs_to
а. user
. post
S Также есть теги, используя acts_as_taggable. На UserController#show
Я хочу перечислить теги, которые пользователь использует, сортировка от большинства используемых для менее используется.
Получение списка тегов не сложно, но как я могу отбрасывать их? Я использую это, чтобы найти теги:
@tags = []
@user.posts.each do |post|
@tags += post.tags
end
Может ли кто-нибудь объяснить мне, как я могу отсортировать теги? Спасибо.
Решение
Вы можете использовать метод Tag_Counts, предоставляемый плагином:
@user.posts.tag_counts
Больше информации здесь: http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids.
РЕДАКТИРОВАТЬ:
Базовый простой код для сортировки:
@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]}
Может быть, есть лучший способ сделать это.
Не связан с StackOverflow