互いに has_and_belong_to_many の 2 つのモデルがあります。
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" ではなく配列であるため、すべてのクラス メソッドを直接使用することはできません。これを達成するためのより良い方法はありますか?