モデルCategoryにはhas_manyProductsがあり、Productにはhas_manyCategoriesがあります。ユーザーがカテゴリを検索したときに、Arelオブジェクトを失うことなく、一致するカテゴリの製品を返したいのですが。これが私がこれまでに持っているものです:
Category.where("upper(title) like ?", search_term.upcase).map {|category| category.products}.flatten
これは製品を返品するトリックを行いますが、もちろん私が持っているのは配列であり、Arelではありません。私は条項を追加することまでできる:includes(:products)
ので、確かに製品を取り戻しますが、それでもそれらをそれらのカテゴリーに添付しています。クエリを調整して、製品のみを対象とするArelだけが返されるようにするにはどうすればよいですか?