访问合并范围中的关联字段

时间:2014-02-28 03:24:52

标签: ruby-on-rails group-by scopes

型号: 车辆输入了大量的里程读数(在这种特殊情况下,车辆以小时计量表运行)。

在视图中,我需要显示为每辆车输入的最大小时数。这包括从车辆模型显示车辆的几个字段,以及从里程模型中读取的最大相关小时数。

我遇到的问题是合并两个范围:

scope :max_hours, Mileage.maximum(:hours, :group => :vehicle_id)

scope :max_vehicle_hours; lambda { joins(:vehicle).merge(Mileage.max_hours) }

我只能从Vehicle模型访问视图中的信息,并且不知道如何访问max_hours范围的结果。 控制器:

@vehicle = Vehicle.max_vehicle_hours

使用<% @vehicle.each do |m| %>我尝试过:

m.mileage.hours
m.max_hours.mileage

但是无法解决这个问题。 (错误是未定义的方法'里程'为#)

任何人都可以看到我搞砸了,或者是否有更好的方法来做到这一点。非常感谢。

1 个答案:

答案 0 :(得分:0)

看起来我要做的远比必要复杂得多。

m.mileages.maximum(:mileage)