0

如果可能的话,我想减少这个查询:

@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 查询”吗?

4

1 回答 1

4

你可以这样做:

@orders_in_progress = user.orders.where(state: ["Waiting for Payment Authorization", "Paid", "Shipped"])

它将生成“in”查询,但它的工作方式与您原来的查询相同。

此外,您可能需要考虑将状态更改为更简单的状态(想到“待处理”、“已付款”、“已发货”)并使用翻译生成对人类友好的版本。

于 2013-02-24T22:49:07.580 回答