I have a model
class Order < ActiveRecord::Base
...
enum status: [:started, :finished, :failed, :processing]
...
end
And want to select all processing and finished orders. I cannot write simply
@orders = Order.where(status: [:finished, :processing])
because status field is naturally an integer, not string or literal. So this statement generates
2.2.0 :008 > Order.where(status: [:finished, :processing])
SELECT "orders".* FROM "orders" WHERE "orders"."status" IN (NULL, NULL)
Now i do the following
@orders = Order.where(status: [:finished, :processing].map { |s| Order.statuses[s] }
Is there any better way?
@orders = Order.where(status: [1,3])