How to find models that have at least one associated has_many

I'm having a senior moment. I've done this before but I can't remember how.

Two active record models,

Foo belongs_to Bar

Bar has_many Foos

I want to find all Bars that have at least one Foo, is it:

Bar.all(:include => :foos, :conditions => " IS NOT NULL')

or something else?

Hi Rick,


  Bar.all(:joins => :foos).uniq the job?

Bar.all(:joins => :foos).uniq

Seems to... quick and dirty test on one of my models:

Person.all(:include => :graduations).select { |person| !person.graduations.empty? }.size

=> 87

Person.all(:include => :graduations).select { |person| person.graduations.size > 0 }.size

=> 87

Person.all(:joins => :graduations).size

=> 103

Person.all(:joins => :graduations).uniq.size

=> 87