2012-05-24 2 views

ответ

2

Вы можете использовать не существует, как:

Post.where(" not exists (select 'x' from comments where comments.post_id = posts.id)") 
+0

Я бы использовал кеш-счетчик, чтобы избежать запроса sub. Если у вас много комментариев, это может быть излишне медленным. – DanS

3

Для лучшей производительности используйте колонку counter_cache:

belongs_to :post, :counter_cache => true

api.rubyonrails.org, Railscasts

Тогда вы можете сделать:

Post.where("comments_count = ?", 0)

Смежные вопросы