0

モデル: 車両 has_many 走行距離の測定値が入力されています (この特定のケースでは、車両はアワー メーターで走行しています)。

ビューでは、各車両に入力された最大の時間測定値を表示する必要があります。これには、車両モデルからの車両に関するいくつかのフィールドの表示と、マイレージ モデルから読み取った最大の関連時間のみの表示が含まれます。

私が抱えている問題は、2 つのスコープをマージすることです。

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

しかし、それを解決することはできません。(エラーは # の未定義のメソッド `mileage' です)

私が何を台無しにしているのか、またはこれを行うためのより良い方法があるかどうか、誰でも見ることができますか。どうもありがとう。

4

1 に答える 1

0

これを必要以上に複雑にしていたようです。

m.mileages.maximum(:mileage)
于 2014-03-02T10:57:30.343 に答える