Rails: сортировка наиболее часто используемых тегов activ_as_taggable пользователем

Я создал две модели: user а также post, каждый postbelongs_to user, postУ них также есть теги с использованием act_as_taggable. На UserController#show Я хочу перечислить теги, которые использует пользователь, сортируя от наиболее используемых к менее используемым.

Получить список тегов несложно, но как их отсортировать? Я использую это, чтобы найти теги:

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

Может кто-нибудь объяснить мне, как я могу сортировать теги? Благодарю.

1 ответ

Решение

Вы можете использовать метод 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]}

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

Другие вопросы по тегам