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