Frage

Ich habe zwei Modelle aufgebaut: user und post. Jeder post belongs_to eine user. posts auch Tags, acts_as_taggable verwenden. Auf UserController#show möchte ich die Tags verwendet der Benutzer aufzulisten, von den meisten auf weniger verwendet sortieren.

eine Liste von Tags zu bekommen ist nicht schwer, aber wie kann ich sie sortieren? Ich benutze dies die Tags zu finden:

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

Kann mir jemand erklären, wie ich die Tags sortieren? Danke.

War es hilfreich?

Lösung

Sie könnten tag_counts Methode Plugin zur Verfügung gestellt verwenden:

@user.posts.tag_counts

Weitere Informationen hier: http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids

EDIT:

ein Grund einfacher Code für die Sortierung:

@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]}

Vielleicht gibt es einen besseren Weg, es zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top