Прежде всего, я не завидую вашей ситуации. Это довольно уродливый формат даты. Единственное, о чем я могу думать, - это создать массив строк в этом формате, представляющих ВСЕ дни между датой начала и датой окончания, а затем использовать синтаксис SQL «IN», чтобы найти даты в этом наборе (что можно делать из ActiveRecord: условия условия).
Например, если вы хотите выполнить поиск 10 дней назад:
num = 10 #number of days ago for search range
# range starts at 1 because you specified yesterday
matching_date_strings = (1..num).to_a.map{|x| x.days.ago.strftime("%m-%d-%Y")}
=> ["08-24-2010", "08-23-2010", "08-22-2010", "08-21-2010", "08-20-2010"]
# then...
records = MyModel.all(:conditions => { :date => matching_date_strings })
# or in your case with field1 and field2
records = MyModel.find_all_by_field1_id_and_field2_id(value1, value2, :conditions => { :date => matching_date_strings })
Идея в том, что это должно генерировать SQL с чем-то вроде "... WHERE date IN (" 08-24-2010 "," 08-23-2010 "," 08-22-2010 "," 08-21- 2010 "," 20-20-2010 ")