我有一个属于订单的LineItem类。订单包含许多订单项。订单有两个属性,service_category和state。我需要获得具有以下条件的所有订单。目前我正在使用以下2个查询,但我真的想使用1个查询,这可能吗?
LineItem.includes(:order).where(
menu_item_id:menu_item_id,
orders:{
service_category: "delivery",
state:["pending", "open"]
}
)
LineItem.includes(:order).where(
menu_item_id:menu_item_id,
orders:{
service_category: "walkup",
state:["pending", "closed"]
}
)
答案 0 :(得分:0)
我不确定确切的语法,因为我没有设置模型,但是你不应该包含由OR(||)分隔的两个状态吗?你尝试过这样的事吗?
LineItem.includes(:order).where(
menu_item_id:menu_item_id,
orders:{
(service_category: "delivery",
state:["pending", "open"])
||
(service_category: "walkup",
state:["pending", "closed"])
}
)