Не думаю, что вы можете стать намного лучше (без использования некоторых драгоценных камней, таких как meta_where ):
Audits.where(
'DATE(created_at) <= ? AND DATE(created_at) >= ?
AND auditable_type = ? AND auditable_id = ?',
Date.new(2011, 12, 01), Date.new(2011, 11, 25), 'Investement', 41
).group('DATE(created_at)').order('id DESC')