Найдите записи с более чем одной ассоциацией ActiveRecord HABTM.

StackOverflow https://stackoverflow.com/questions/203489

Вопрос

У меня есть две модели, объединенные таблицей соединений Has и Belongs To Many.Назовем эти модели «Пользователь» и «Событие».У большинства Пользователей 0 событий, а у немногих — одно или несколько.Я хочу сделать что-то вроде:

User.find(:all, :joins => :events, :conditions => ["«Нечто, подсчитывающее события» > ?"], 0)

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

Это было полезно?

Решение

Я нашел ответ:

User.find(:all, :joins => :events, :select => 'DISTINCT `users`.*')

По сути, users.* ограничивает набор результатов только таблицей пользователей, а ключевое слово DISTINCT гарантирует, что каждый пользователь будет возвращен только один раз.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top