rails, Query for Records, которые вложены с Count () GT 0? - PullRequest
0 голосов
/ 23 октября 2010

2 модели Книги (has_many: главы) Главы (принадлежат: книги)

Я бы хотел отобразить список книг, но только книги с главами.

Вот что у меня есть:

@books = Book.find(:all,:include => :chapters)

Проблема в том, что книги возвращают книги без глав (0 глав)

при работе с вложенными ресурсами, такими какэто, как мне сказать, где найти счет> 0 для глав?

Прямо сейчас я делаю это в контроллере, не уверен, если это проблема.но я, вероятно, должен переместить это в модель?

ура

1 Ответ

1 голос
/ 24 октября 2010

Добавьте этот код в книгу:

scope :only_with_chapters, includes(:chapters).having('COUNT(chapters.id) > 0').group('books.id')

И чтобы использовать его, просто запустите Book.only_with_chapters

В зависимости от производительности используйте joins вместо includes.

Использование объединений будет выглядеть так:

scope :only_with_chapters, includes(:joins).group('books.id')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...