Попытка вернуть наибольшее значение для отсортированной по группе модели - PullRequest
0 голосов
/ 10 марта 2011

У меня много ко многим: через отношения. Пользователи -> Членство <- Группы </p>

Модель пользователя имеет столбец: страна.

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

У меня есть этот атм по модели группы;

def country
 Country.find(users.group(:country_id).count.keys.first)
end

Что не работает, я видел, что он возвращает OrderedHash, где я сейчас беру первый ключ, который не имеет смысла. Кажется, просто показываю тебе, что я потерян.

Я хочу иметь возможность сделать @ group.country и получить самую большую страну в этой группе.

Любая помощь в том, как мне поступить об этом?

1 Ответ

0 голосов
/ 10 марта 2011

Это было бы намного проще, если бы вы использовали функцию :counter_cache ActiveRecord, потому что числа будут выражаться в столбце, который вы можете индексировать и сортировать по.Альтернативой является написание некоторого пользовательского SQL для получения правильного результата.

Альтернатива состоит в том, чтобы ссориться с такой группой, как у вас:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...