2011-12-19 9 views

答えて

5

あなたは機器の最後に挿入された走行距離計のための走行距離をしたい場合は、機器の最大走行距離走行距離取りたい場合は、

# assuming autoincrement id 
@equipment.odometers.order('odometers.id DESC').limit(1).first.mileage 

# assuming created_at column 
@equipment.odometers.order('odometers.created_at DESC').limit(1).first.mileage 

行いますのでEquipment has_many :odometers

@equipment.odometers.max(:mileage) 

を上記のコードでは、:equipment_id => equipment.idの条件が暗黙的です。

counter cacheに似たようなものを実装したいと思うかもしれませんが、クエリを高速化するためにカウントを最大にするということだけがあります。 /:

+1

今と呼ばれている列の最大値を見つけるためのRailsの方法[最大](HTTPのようにアクセスすることができます

class Equipment < ActiveRecord::Base belongs_to :odometer_type has_many :odometers def max_milage odometers.max(:mileage) end end 

その後、あなたの機器のモデルでこれを置くことができます/api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-maximum)。 –

1

あなたは@equipment.max_milage