私の声明..
Object.joins(:child_objects).where("child_objects.type != 'Magical!'").group(:id)
これでも、タイプが.に等しいObject
'を返します。child_object
Magical!
どうすれば、child_objectタイプのMagicalを持たないオブジェクトのみを排他的に返すことができますか?
私の声明..
Object.joins(:child_objects).where("child_objects.type != 'Magical!'").group(:id)
これでも、タイプが.に等しいObject
'を返します。child_object
Magical!
どうすれば、child_objectタイプのMagicalを持たないオブジェクトのみを排他的に返すことができますか?
副選択(私は「クラシック」Product <= LineItem => Order
モデルセットを使用)とNOT IN
:を使用できます。
jdoe_products = Product.joins(:orders).where(orders: {name: 'jdoe'})
Product.where('id NOT IN (%s)' % jdoe_products.select(:id).to_sql)
生産:
Product Load (0.0ms) SELECT "products".* FROM "products" WHERE (id NOT IN (SE
LECT "products"."id" FROM "products" INNER JOIN "line_items" ON "line_items"."pr
oduct_id" = "products"."id" INNER JOIN "orders" ON "orders"."id" = "line_items".
"order_id" WHERE "orders"."name" = 'jdoe'))