Ruby on Rails находит всех родителей с дочерними записями - PullRequest
0 голосов
/ 06 сентября 2011

У меня есть две модели - Topic и ContentItems.

В теме есть_для содержимого_, но тема может быть создана без каких-либо ранее существовавших элементов.

Кто-нибудь знает, как я могу выбрать все темы хотя бы с одним content_item без использования кеша счетчика?

В настоящее время я делаю что-то вроде:

Topic.joins(:content_items).uniq

но это обрабатывает его в памяти, поэтому, если я не могу связать лимит или порядок с него, т.е. я не могу сделать

Topic.joins(:content_items).uniq.limit(10).order("created_at DESC")

Счетчик кэша является возможным долгосрочным вариантом, но он немного больше изменений, чем я хотел бы сделать прямо сейчас, если нет лучших решений.

Спасибо всем

1 Ответ

3 голосов
/ 06 сентября 2011

Вы можете попробовать это

Topic.joins(:content_items).select("DISTINCT topics.*")

OR

Topic.include(:content_items).where("content_items.id IS NULL")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...