我有一个简单的模型Product
,Guide
以及Document
它们是这样的:
Product
有很多Guides
并且Guide
有很多Documents
我正在寻找的查询是仅当产品包含文档时才返回产品。
Product.joins(:guides).distinct
正在给 Product 至少一个指南,但如何添加嵌套级别?
Product.joins(guides: :documents).distinct
假设您的模型已经设置了has_many
关联,您的表名是标准的,并且应该生成查询:
SELECT DISTINCT "products".* FROM "products"
INNER JOIN "guides" ON "guides"."product_id" = "products"."id"
INNER JOIN "documents" ON "documents"."guides_id" = "guides"."id"
(查询将根据您使用的 SQL 风格而有所不同;这是针对 Postgres 的。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句