В отношениях один-ко-многим без счетчика кэша, как мне найти родителей без ребенка?
user.rb
has_many :pages
page.rb
belongs_to :user
Я пробовал
User.includes(:pages).where("pages.user_id is NULL")
Это создает проблемы в MySQL.
Попробуйте
User.joins("left join pages on pages.user_id = users.id").where("pages.user_id is null")
Я верю, что что-то вроде
User.all(:joins => :comments, :select => "users.*, count(comments.id) as comments_count", :group => "users.id")
может также работать ...
Один путь будет
User.where("(SELECT COUNT(*) FROM pages WHERE pages.user_id = users.id) = 0")
Но я не уверен, насколько (не) эффективно это будет.