0
我有一個模型在陣列選擇使用ActiveRecord枚舉
class Order < ActiveRecord::Base
...
enum status: [:started, :finished, :failed, :processing]
...
end
而且要選擇所有加工和成品的訂單。我不能簡單地寫
@orders = Order.where(status: [:finished, :processing])
因爲狀態字段自然是一個整數,而不是字符串或文字。所以,這種說法產生
2.2.0 :008 > Order.where(status: [:finished, :processing])
SELECT "orders".* FROM "orders" WHERE "orders"."status" IN (NULL, NULL)
我現在下面
@orders = Order.where(status: [:finished, :processing].map { |s| Order.statuses[s] }
有沒有什麼更好的辦法?
嘗試'@orders = Order.where(狀態:[1,3])' – Pavan
謝謝你,但它打破抽象。我想通過它的名稱來調用訂單狀態,而不是整數 – mbeloshitsky