Ruby on rails Rails 5-应用到父项的位置后的子项总和

Ruby on rails Rails 5-应用到父项的位置后的子项总和,ruby-on-rails,nested-attributes,ruby-on-rails-5,Ruby On Rails,Nested Attributes,Ruby On Rails 5,在我的Rails 5应用程序中,我有乘客、航班和临时演员 一个乘客有很多航班,一个航班有很多额外的航班 飞行和额外模型都有一个字段值 我正在尝试从所有航班(在一个日期范围内)获取所有额外信息,并获取其值的总和 passenger.flights.where(CONDITION).sum(:value) 给我航班的总价值 现在我试着做一些类似的事情 passenger.flights.where(CONDITION).extras.sum(:value) 当然,这给了我一个错误: undefi

在我的Rails 5应用程序中,我有乘客、航班和临时演员

一个乘客有很多航班,一个航班有很多额外的航班

飞行和额外模型都有一个字段值

我正在尝试从所有航班(在一个日期范围内)获取所有额外信息,并获取其值的总和

passenger.flights.where(CONDITION).sum(:value)
给我航班的总价值

现在我试着做一些类似的事情

passenger.flights.where(CONDITION).extras.sum(:value)
当然,这给了我一个错误:

undefined method `extras' for #<ActiveRecord::AssociationRelation []>
未定义的方法“extras”#
通常,我会使用has\u many-through为一名乘客获得所有额外费用。但由于我有中间的WHERE过滤器,我不知道该怎么做

我希望问题清楚了。

你应该看看

如果在乘客模式下,您有
多个:额外的,通过::flights
,您可以这样做(注意,条件只是随机的,以突出显示
表\u name.列\u name
):


passenger.Extra.join(:flight)。其中('flights.date>?或flights.date<?',一些日期,一些其他日期)。sum(:value)

谢谢,此返回:无法加入名为'flights'的关联的'Extra',请尝试
加入(:flights)
passenger.flights.where(CONDITION).joins(:extras).sum('extras.value')