Die Abfrage, die Sie erstellen möchten, lautet:
MyClass.where(
:name.in => [ 'John', 'Luke' ],
:status.in => [ 'ACTIVE', 'SUSPENDED' ]
)
Ein :field.in
funktioniert genauso wie field in (...)
in SQL und das ist nur eine Kurzform für eine or-Anweisung. Das macht die Sache um einiges einfacher, da Sie nur .in
hinzufügen müssen Aufrufe der criteria
Schlüssel, deren Werte Arrays sind, etwa so:
query = criteria.each_with_object({}) do |(field, values), query|
field = field.in if(values.is_a?(Array))
query[field] = values
end
MyClass.where(query)