Rails: Сортировать большинство acts_as_taggable Теги пользователями

StackOverflow https://stackoverflow.com/questions/3477668

  •  28-09-2019
  •  | 
  •  

Вопрос

Я настроил две модели: user а также post. Отказ Каждый post belongs_to а. user. postS Также есть теги, используя 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]}

Может быть, есть лучший способ сделать это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top