आप जो क्वेरी बनाना चाहते हैं वह है:
MyClass.where(
:name.in => [ 'John', 'Luke' ],
:status.in => [ 'ACTIVE', 'SUSPENDED' ]
)
एक :field.in
field in (...)
. के समान काम करता है एसक्यूएल में और यह एक या-कथन के लिए सिर्फ एक संक्षिप्त रूप है। इससे चीजें काफी आसान हो जाती हैं क्योंकि आपको बस .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)