我有两个模型 has_and_belong_to_many 彼此:
class Post < ActiveRecord::Base
has_and_belongs_to_many :tags, :join_table => :tags_posts
end
class Tag < ActiveRecord::Base
has_and_belongs_to_many :posts, :join_table => :tags_posts
end
然后我有一个查询:
@tags = Tag.where(name: ["tag1","tag2","tag3"])
我想获得所有具有这些标签的独特帖子,所以我编写了这个丑陋的代码:
@posts = []
@tags.each do |tag|
@posts += tag.posts
end
@posts.uniq!
我想这是低效的,因为@posts 是一个数组而不是“ActiveRecord::Relation”,所以我不能直接使用它上面的所有类方法。有没有更好的方法来实现这一目标?