A consulta que você deseja criar é:
MyClass.where(
:name.in => [ 'John', 'Luke' ],
:status.in => [ 'ACTIVE', 'SUSPENDED' ]
)
Um
:field.in
funciona da mesma forma que field in (...)
em SQL e isso é apenas uma forma curta para uma instrução ou. Isso torna as coisas um pouco mais fáceis, pois você só precisa adicionar .in
chamadas para os criteria
keys cujos valores são arrays, algo assim:query = criteria.each_with_object({}) do |(field, values), query|
field = field.in if(values.is_a?(Array))
query[field] = values
end
MyClass.where(query)