Найдите записи с более чем одной ассоциацией ActiveRecord HABTM.
-
03-07-2019 - |
Вопрос
У меня есть две модели, объединенные таблицей соединений Has и Belongs To Many.Назовем эти модели «Пользователь» и «Событие».У большинства Пользователей 0 событий, а у немногих — одно или несколько.Я хочу сделать что-то вроде:
User.find(:all, :joins => :events, :conditions => ["«Нечто, подсчитывающее события» > ?"], 0)
Проблема в том, что я не знаю, как выбрать только тех пользователей, у которых есть одно или несколько связанных событий.
Решение
Я нашел ответ:
User.find(:all, :joins => :events, :select => 'DISTINCT `users`.*')
По сути, users
.* ограничивает набор результатов только таблицей пользователей, а ключевое слово DISTINCT гарантирует, что каждый пользователь будет возвращен только один раз.
Не связан с StackOverflow