关联模型的Rails生成ave

时间:2018-07-17 23:49:36

标签: ruby-on-rails activerecord ruby-on-rails-5

路轨5

我的模型设置如下:

  

父亲

     

has_many:children,通过::another_model

     

孩子

     

has_one:father,:through =>:another_model

     

has_many:grand_children

     

孙子

     

属于:孩子

我想找到一个父亲的Grand_Children的平均年龄,并同时为多个父亲生成该年龄(并对其进行排序)。 Grand_children中可能有很多年龄(数字),因此我很注意查询可能会变得很大且很快。

以下是我要达到的示例(无联接等):Father.order('ave(grand_children.age)DESC')。

我研究了使用Active Record进行此操作的几种不同方式,但通常示例仅涉及1个相关模型。

任何问题,让我知道。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用任何模型来查看组合爆炸。给祖父一个average_grandson_age属性,并在每次添加一个儿子时对其进行更新,效率会更高。