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

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

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

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

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

1 Ответ

0 голосов
/ 13 августа 2010

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

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

...