Quer encontrar registros sem registros associados no Rails 3

Considere uma associação simples ...

class Person
   has_many :friends
end

class Friend
   belongs_to :person
end

Qual é a maneira mais limpa de obter todas as pessoas que NÃO têm amigos no ARel e / ou meta_where?

E então, que tal um has_many: através da versão

class Person
   has_many :contacts
   has_many :friends, :through => :contacts, :uniq => true
end

class Friend
   has_many :contacts
   has_many :people, :through => :contacts, :uniq => true
end

class Contact
   belongs_to :friend
   belongs_to :person
end

Eu realmente não quero usar counter_cache - e pelo que li, não funciona com has_many: através de

Não quero puxar todos os registros person.friends e percorrê-los no Ruby - quero ter uma consulta / escopo que possa ser usada com a meta_search gem

Não me importo com o custo de desempenho das consultas

E quanto mais longe do SQL real, melhor ...

questionAnswers(8)

yourAnswerToTheQuestion