0

タグ付けによる多くのタグを持つ投稿モデルがあります。まあ言ってみれば:

@posts = Post.followed_by(@user)

@postsのタグを全て取得したい。

私は次のようなものでそれを行うことができます:

@posts.each do |post|
  @tags << post.tags
end

より効率的な方法で行うにはどうすればよいですか?

4

1 に答える 1

2

これを試して:

Tag.joins(:taggings).where(taggings: {post_id: @posts.map(&:id)})

がリレーション(配列ではない)の場合@posts、クエリを簡略化できます。

Tag.joins(:taggings).where(taggings: {post_id: @posts})
于 2012-04-15T17:43:02.397 に答える