Ich möchte eine Liste aller Post-Tags anzeigen, die sie am häufigsten verwendeten.Schienen sortieren Tags nach den meisten verwendeten (tag.posts.count)
Mein Controller verfügt derzeit über:
@tag_list = Tag.all
Meine Ansicht hat:
<% @tag_list.each do |tag| %>
<%= tag.name %>(<%= tag.posts.count %>)
<% end %>
EDIT die Beziehungen sind wie folgt:
Tag (has_many :posts, :through => :taggings)
Tagging(belongs_to :tag and belongs_to :post)
Post(has_many :tags, :through => :taggings)
Dies zeigt alle Tags mit ihrer Zählung. Ich habe versucht, mit dem Controller mit Tag.order (..) zu spielen, aber kann nicht gut kommen.
Jede Hilfe würde sehr geschätzt werden.
Danke.
Ich glaube nicht, wird funktionieren, wenn Post und Tag in einer 'has_and_belongs_to'-Beziehung sind ... die sie wahrscheinlich in Wirklichkeit sind, oder? –
Danke für die Rückmeldung ... Ich verwende die Beziehung Tag (has_many: Beiträge,: through =>: Markierungen), Tagging (gehört zu: Tag und gehört zu: Post), Post (has_many: Tags,: through =>: Markierungen) – Goldy
@Andy: Ja, ich bin mir ziemlich sicher, dass eine has_and_belongs_to_many Beziehung mit counter_cache nicht funktioniert. Stattdessen müssten Sie die Zählung entweder manuell über einen Observer verwalten und den After_create/after_destroy-Teilen des Lebenszyklus der Modelle oder der Einrichtung von has_many: through-Beziehungen Funktionalität hinzufügen. – Shaun