Заявката, която искате да създадете, е:
MyClass.where(
:name.in => [ 'John', 'Luke' ],
:status.in => [ 'ACTIVE', 'SUSPENDED' ]
)
A :field.in
работи по същия начин като field in (...)
в SQL и това е само кратка форма за израз или. Това прави нещата доста по-лесни, тъй като просто трябва да добавите .in
извиквания към criteria
ключове, чиито стойности са масиви, нещо като това:
query = criteria.each_with_object({}) do |(field, values), query|
field = field.in if(values.is_a?(Array))
query[field] = values
end
MyClass.where(query)