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 に答える