Eager Loading with scoping

I have been trying to eager load associations based on some scope in my rails3 app, but could not find any solution.

My app has following models:

    class Project      has_many :entries      has_many :to_dos

    class ToDo      has_may :entries      has_many :tasks      belongs_to :project

    class Task      has_many :entries      belongs_to :to_do

    class Entry     belongs_to :project     belongs_to :to_do     belongs_to :task

    # options format: {:from_date=>(Date.today-1.week), :to_date=>(Date.today +1.week), :user_id=>60}     scope :filtered_list, lambda { |options|       condition = options[:user_id].nil? ? "true" : "user_id = #{options[:user_id]}"       condition += options[:from_date].nil? ? "" : " AND entry_date >= '#{options[:from_date]}'"       condition += options[:to_date].nil? ? "" : " AND entry_date <= '#{options[:to_date]}'"       where(condition)     }

And in projects#index i have following code to get all projects of an user:

    @projects = current_user.projects.includes(:entries, :to_dos =>[:entries, :tasks => :entries])

It fetches all projects of the user, along with eager loading the associations. So when i perform following loop to get all the entries within the project, no new query gets fired.

    def all_entries(options)       entries = self.entries       self.to_dos.each do |d|         entries += d.entries         d.tasks.each do |t|           entries += t.entries         end       end     end

As this eager loading fetches all entries, it is way too much data than what I actually needed. So I tried to apply some conditions to the entries eager loaded, but could not find any solution. I was looking for something like:

    @projects = current_user.projects.includes(:entries.filtered_list(options), :to_dos =>[:entries.filtered_list(options), :tasks => :entries.filtered_list(options)])

So that only the entries satisfying some conditions get loaded.

Can't we use scoping with eager loading? Please help me out use eagerloading alongside scoping.