Advanced scope (or how to optimize it.)

Hi all,

I have a question about my scope in Rails 3.0. The following code working fine but I thinks it's not clean and could be optimzed.

What do you think about that :

scope :between_date, lambda { |start_at, end_at| {:conditions => ["((start_at BETWEEN ? AND ?) AND (end_at BETWEEN ? AND ?)) OR (all_day = 1 AND ((start_at BETWEEN ? AND ?) AND (end_at BETWEEN ? AND ?)))", start_at, end_at, start_at, end_at, start_at.beginning_of_day, end_at.end_of_day, start_at.beginning_of_day, end_at.end_of_day]} }


I have found the first part of the solution, but I don't know how scope can aggragate "all_day condition" to this condition.

{:conditions => { :start_at => start_at..end_at, :end_at => start_at..end_at }}

Thanks for reading