路轨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个相关模型。
任何问题,让我知道。
谢谢
答案 0 :(得分:1)
您可以使用任何模型来查看组合爆炸。给祖父一个average_grandson_age
属性,并在每次添加一个儿子时对其进行更新,效率会更高。