Squeel
SELECT "people".* FROM people
WHERE ("people"."name" LIKE 'Ernie%' AND "people"."salary" < 5000)
OR ("people"."name" LIKE 'Joe%' AND "people"."salary" > 10000)
Person.where(
'(name LIKE ? AND salary < ?) OR (name LIKE ? AND salary > ?)',
'Ernie%', 5000, 'Joe%', 10000
)
people = Arel::Table.new(:people)
people.
project(Arel.star).
where(people[:name].matches('Ernie%').and(people[:salary].lt(5000)).
or(people[:name].matches('Joe%').and(people[:salary].gt(10000)))).to_sql
Person.where{(name =~ 'Ernie%') & (salary < 5000) |
(name =~ 'Joe%') & (salary > 10000)}