Truy vấn bạn muốn tạo là:
MyClass.where(
:name.in => [ 'John', 'Luke' ],
:status.in => [ 'ACTIVE', 'SUSPENDED' ]
)
A :field.in
hoạt động giống như trường field in (...)
trong SQL và đó chỉ là một dạng ngắn cho câu lệnh or. Điều đó làm cho mọi thứ dễ dàng hơn một chút vì bạn chỉ cần thêm .in
gọi đến criteria
khóa có giá trị là mảng, giống như thế này:
query = criteria.each_with_object({}) do |(field, values), query|
field = field.in if(values.is_a?(Array))
query[field] = values
end
MyClass.where(query)