0

タグを作成したユーザーによってタグを分離できるタグ付けシステムが必要です。Railscast #167 に従い、仮想属性を使用してタグを設定しましたが、その方法では @post.tags を呼び出して投稿のタグを見つけることしかできませんが、@user.tags を呼び出してすべてのタグを見つけることはできません。

@user.posts.tag("music") がタグ music を持つすべての投稿を返すように、これをどのように拡張できますか?

私が間違っていることについての助けや洞察をありがとう。

4

1 に答える 1

2

@user.posts配列を返すため、次のようなものでこれを非常に簡単にフィルタリングできます。

@user.posts.select do |post|
  post.tag_names.include? "music"
end

ただし、その状況ではレコードが積極的にロードされないという問題が発生する可能性があります。このような何かがそれを処理する必要があります:

Post.includes(:taggings => :tags).where("posts.user_id = ?", @user.id).select do |post|
  post.tag_names.include? "music"
end
于 2011-06-24T06:55:24.667 に答える