将ActiveRecord集合从一种类型转换为另一种类型

时间:2011-06-12 21:16:17

标签: ruby-on-rails activerecord casting find unique

假设我有两个Rails ActiveRecord 模型, CarType (汽车品牌/型号)和 Car (CarType实例)。 Car * belongs_to * CarType,CarType * has_many * Cars。

我想要一个Cars列表,但只有唯一的CarTypes(结果中没有重复的CarTypes)。

基本上,我想要结果:

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

...而是转换为Car对象的集合。我怎么能做到这一点?

修改

我开始通过执行上面的CarType.find语句,反向工程Rails'生成的SQL代码(Rails实际上生成两个SQL语句)然后使用Car.find_by_sql来解决这个问题,但我觉得解决方案变得非常笨重。

1 个答案:

答案 0 :(得分:1)

我认为,Cars.group("cartype_id")正是您所寻找的。并回答你的问题,afaik排序是在小组之后应用的。