Conditionalizing find via has_many

Duane Morin wrote:

It would be even better if I could do something equivalent to
redefining find(:all) so that this only ever deals with that particular
condition.

As far as I know, there is no AR mechanism to use pure ruby syntax to
perform a search through a relation whether that is has_many,
belongs_to, etc..

However, this may be close to what you are looking for:

class Person < ActiveRecord::Base
  def self.with_meeting_scope
    with_scope(:find => {:joins => "meetings on meetings.person_id =
people.id"}) {yield}
  end

  def self.find_all_with_meetings
    with_meeting_scope {find :all}
  end
end

I myself however would just use the sql as I find that the with_scope
syntax can quickly get out of hand and it usually turns out to be vendor
specific anyways..

hth

ilan