Rails’ find_by_xxx and find_all_by_xxx methods accept arrays and ranges!
by Rabbit
Use an array as the argument to a find_by_xxx method:
Appointment.find_by_date([ Date.today, Date.today + 1])
And the generated SQL:
SELECT * FROM appointments WHERE (appointments.'date' IN ('2007-10-07','2007-10-08')) LIMIT 1
Use a range as the argument to a find_all_by_xxx method:
Appointment.find_by_date((Date.today..Date.today + 1))
SELECT * FROM appointments WHERE (appointments.'date' BETWEEN '2007-10-07' AND '2007-10-08') LIMIT 1
Both methods (find_by and find_all_by) accept both arrays and ranges.