De includes
methode van AREL zal kiezen tussen twee strategieën om de zoekopdracht te maken, waarvan er één eenvoudig twee verschillende zoekopdrachten doet en de andere een INNER JOIN doet. In beide gevallen zullen de producten verschillend zijn.
Je moet handmatig een rechter outer join doen:
Product.joins('RIGHT JOIN categories ON categories.product_id = products.id').where(categories: { id: @my_product.categories.pluck(:id) } )
voegt ook .preload(:categories)
. toe als je het gretige laden van de categorieën wilt behouden.