Named_scope on has_many, find all records that don't have elements in that association


#1

Hi,
I have a Customer model that has_many :addresses, is there a way (via
named scope or any other method that’s … ehm … model side) to
obtain all the Customers that don’t have any addresses at all (for
which the associated array would be empty)?

Thank you for the answer…


#2

Thinking in SQL, you want to do this:

select * from customers left outer join addresses on
customers.address_id = addresses.id
where addresses.id is null.

First thing that comes to mind here something like:
Customer.find(:all, :include => :address, :conditions => ‘addresses.id
is null’)

hope that helps,
-H

On Jan 11, 5:32 pm, Gabriele T. removed_email_address@domain.invalid