我有这个查询,如果可能的话我想减少:
@orders_in_progress = user.orders.where("state = ? OR state = ? OR state = ?, "Waiting for Payment Authorization", "Paid", "Shipped")
我正在寻找的是:
@orders_in_progress = user.orders.where("state = ?", "Waiting for Payment Authorization" || "Paid" || "Shipped)
另外,我对这里的术语有点困惑 - 这是“具有元素的多个条件的ActiveRecord查询”吗?
答案 0 :(得分:3)
你可以这样做:
@orders_in_progress = user.orders.where(state: ["Waiting for Payment Authorization", "Paid", "Shipped"])
它将生成" in"查询但它的工作方式与原始查询的工作方式相同。
另外,您可能需要考虑将状态更改为更简单('待定','付费','发货'想到)并使用翻译生成人性化的版本。