【发布时间】:2011-06-12 21:16:17
【问题描述】:
假设我有两个 Rails ActiveRecord 模型,CarType(汽车的品牌/型号)和 Car(CarType 的实例)。 Car *belongs_to* CarType 和 CarType *has_many* Cars。
我想要一个汽车列表,但只有唯一的 CarTypes(结果中没有重复的 CarTypes)。
基本上,我想要以下结果:
CarType.find(:all, :include => [:cars])
...但转换为 Car 对象的集合。我怎样才能做到这一点?
编辑
我开始通过执行上面的CarType.find 语句来解决这个问题,对Rails 生成的SQL 代码进行逆向工程(Rails 实际上会生成两个SQL 语句),然后使用Car.find_by_sql,但我觉得解决方案变得非常庞大。
【问题讨论】:
-
所以您只想为每个 CarType 检索一辆汽车?
-
是的,正确:每个 CarType 只有一辆汽车。附带问题:排序顺序会影响为每个 CarType 选择哪辆车(因为可以有多个)?
标签: ruby-on-rails activerecord casting find unique