私はモデルラップを持っています:
class Lap < ActiveRecord::Base
belongs_to :car
def self.by_carmodel(carmodel)
scoped = joins(:car_model).where(:car_models => {:name => carmodel})
scoped
end
def self.fastest_per_car
scoped = select("laps.id",:car_id, :time, :mph).group("laps.id", :car_id, :time, :mph).order("time").limit(1)
scoped
end
end
各車の最速ラップのみを返したい。
そのため、Lap.car_id でラップをグループ化し、その車に基づいて最速のラップ タイムのみを返す必要があります。これは、Lap.time 列によって決定されます。
基本的に、メソッドをコントローラーにスタックしたいと思います。
@corvettes = Lap.by_carmodel("Corvette").fastest_per_car
うまくいけば、それは理にかなっています...
Lap.fastest_per_carだけを実行しようとすると、各車ごとに 1 つの結果ではなく、すべてを 1 つの結果に制限しています。
私がしなければならなかったもう1つのことは、「laps.id」を追加することでした。結果にも:idが空で表示されていたからです。select(:id) だけだとあいまいだと言っていた