Я бы хотел показать список всех тегов для сообщений, упорядочивающих их по наиболее часто используемым.Rails сортировать теги по наиболее часто используемым (tag.posts.count)
Мой контроллер в настоящее время:
@tag_list = Tag.all
Мое мнение имеет:
<% @tag_list.each do |tag| %>
<%= tag.name %>(<%= tag.posts.count %>)
<% end %>
EDIT отношения заключаются в следующем:
Tag (has_many :posts, :through => :taggings)
Tagging(belongs_to :tag and belongs_to :post)
Post(has_many :tags, :through => :taggings)
Это показывает все теги с их счета. Я пробовал играть с контроллером с помощью Tag.order (..), но, похоже, не получается.
Любая помощь будет высоко оценена.
Спасибо.
Я не думаю, что будет работать, если Post и Tag находятся в отношениях 'has_and_belongs_to' ..., которые они, вероятно, на самом деле, не так ли? –
Спасибо за отзыв ... Я использую отношения Tag (has_many: posts,: through =>: taggings), Tagging (принадлежит_to: tag и принадлежит_to: post), Post (has_many: tags,: through =>: taggings) – Goldy
@ Andy: Да, я уверен, что has_and_belongs_to_many, что отношения не будут работать с counter_cache. Вместо этого вам нужно будет поддерживать счет вручную через Observer и добавлять функциональные возможности в элементы after_create/after_destroy жизненного цикла модели или устанавливать has_many: через отношения. – Shaun