includes
phương pháp AREL sẽ chọn giữa hai chiến lược để thực hiện truy vấn, một trong số đó chỉ đơn giản thực hiện hai truy vấn riêng biệt và chiến lược kia thực hiện INNER JOIN. Trong cả hai trường hợp, các sản phẩm sẽ khác biệt.
Bạn phải thực hiện thủ công một phép nối bên ngoài bên phải:
Product.joins('RIGHT JOIN categories ON categories.product_id = products.id').where(categories: { id: @my_product.categories.pluck(:id) } )
cũng thêm .preload(:categories)
nếu bạn muốn tiếp tục tải các danh mục một cách háo hức.