Приведение коллекции ActiveRecord из одного типа в другой - PullRequest
0 голосов
/ 13 июня 2011

Предположим, у меня есть две модели Rails ActiveRecord , CarType (марка / модель автомобиля) и Car (экземпляр CarType). Car * принадлежит_ к * CarType, а CarType * имеет_ множество * автомобилей.

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

По сути, я хочу получить результаты:

CarType.find(:all, :include => [:cars])

... но вместо этого он используется как коллекция объектов Car. Как мне это сделать?

EDIT

Я начал решать эту проблему с выполнения приведенного выше оператора CarType.find, обратного инжиниринга кода SQL Rails (Rails фактически создает два оператора SQL), а затем с помощью Car.find_by_sql, но я чувствую, что решение становится очень громоздким.

1 Ответ

1 голос
/ 13 июня 2011

Я думаю, Cars.group("cartype_id") - это то, что вы ищете. И, отвечая на ваш дополнительный вопрос, после группы применяется сортировка afaik.

...