includes
ARELの方法では、クエリを作成するために2つの戦略から選択し、一方は単に2つの異なるクエリを実行し、もう一方は内部結合を実行します。どちらの場合も、製品は異なります。
右外部結合を手動で行う必要があります:
Product.joins('RIGHT JOIN categories ON categories.product_id = products.id').where(categories: { id: @my_product.categories.pluck(:id) } )
.preload(:categories)
も追加します カテゴリの積極的な読み込みを維持したい場合。