3
よく使われるようにすべての投稿タグのリストを表示したいと思います。最もよく使われるタグ(タグ.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(..)を使用してコントローラで遊んでみましたが、うまくいくようには見えません。
ご協力いただければ幸いです。
ありがとうございました。
投稿とタグが「has_and_belongs_to」関係にある場合はうまくいかないと思っています...実際には本当にそうでしょうか? –
フィードバックをいただきありがとうございます...私は関係タグ(has_many:posts、:through:>タグ付け)、タグ付け(belongs_to:タグand belongs_to:post)、投稿(has_many:tags、:through =>:タグジング) – Goldy
@Andy:ええと、has_and_belongs_to_manyという関係はcounter_cacheではうまく動作しないと確信しています。代わりに、Observerを介して手動でカウントを維持し、モデルのライフサイクルのafter_create/after_destroy部分に機能を追加するか、has_many:through関係を確立する必要があります。 – Shaun