three levels of indirection

In the following hypothetical scenario, I'd like to associate Books with Clubs without using finder_sql. Apparently, if you use finder_sql, all the find_in_collection methods are not added to the associated objects. Without which I won't be able to call my_club.books.find(:all, :conditions => 'is_read = true') or to do pagination for example.

Class Club < ActiveRecord::Base             has_many :memberships             has_many :readers, :through => :memberships

            #DOES NOT WORK             #has_many :books, :through => :readers

            #DOES NOT ADD find_in_collection METHODS             #has_many :books, :finder_sql =>             # %q{             # select distinct books.*             # from books             # join memberships on books.reader_id = memberships.reader_id and memberships.club_id = #{self.id}             # order by books.read_at desc             # } end

Class Memberships < ActiveRecord::Base             belongs_to :club             belongs_to :reader end

Class Reader < ActiveRecord::Base             has_many :memberships             has_many :books end

Class Book < ActiveRecord::Base             belongs_to :reader end

Does anyone have any idea how I can create this association without rewriting the find_in_collection methods?

Thanks!

Perhaps I could write my own find method and extend the association proxy? Is there a more elegant way?