Это приведет к 2 запросам, а не подзапросу.

отрим простую ассоциацию ...

class Person
   has_many :friends
end

class Friend
   belongs_to :person
end

Какой самый чистый способ получить всех людей, у которых НЕТ друзей в ARel и / или meta_where?

А потом насчет has_many: через версию

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

Я действительно не хочу использовать counter_cache - и я из того, что я прочитал, не работает с has_many: through

Я не хочу извлекать все записи person.friends и перебирать их в Ruby - я хочу иметь запрос / область, которую я могу использовать с гемом meta_search

Я не против стоимости выполнения запросов

И чем дальше от реального SQL, тем лучше ...

Ответы на вопрос(8)

Ваш ответ на вопрос