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 回答