在Active Record中,是否有一种优雅的方式来处理累积一组集的返回?

时间:2016-11-20 00:00:44

标签: ruby-on-rails activerecord

例如,如果我有一辆汽车。并且它与几种“类型”的轮胎兼容。 即泥轮胎,公路轮胎等

然后对于每个'类型'theres一堆模型。即固特异,火石等

我希望能够查询'A.R. model'返回与其兼容的每种轮胎类型的全套轮胎模型。

因此它首先会查询所有类型,即。=>雪地轮胎和公路轮胎,然后它将循环通过该组,并为每个返回另一组,即固特异雪地轮胎,火石雪地轮胎,超级公路轮胎,火石路面,然后它将返回全套。

架构:

Automobile=>has_many=>tire_types=>has_many=>tire_models.

我想查询汽车模型并获得与汽车兼容的全套轮胎模型。

我可以Automobile.tire_types.tire_models吗?

A.R.聪明到可以为我做所有的迭代?

如果没有使用A.R.的优雅方式。要做到这一点的功能还是只是一种基本方法,这是首选方法?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。它涉及模型中的嵌套has_many声明。

class SportSchedule < ActiveRecord::Base
  has_many :gamedays
  has_many :games, :through => :gamedays
  has_many :results, :through => :games

在此article中找到。

Active Record的另一根羽毛。