私のアプリには2つのモデルがあります。PersonとReviewそれぞれに多くのレビューがあり、それぞれのレビューは個人に属します。私は属性が私のレビューモデルの内側にgrade
と呼ばれ、私はこのスコープを書いたので、私は一人一人の平均等級を表示したいと思います:スコープからbelongs_toモデルからプロパティにアクセスする方法
scope :average_grade, -> { self.first.review.average(:grade) }
はそれを行うためのより良い方法はありますか? 2つのクエリに加えて、この方法が必要であることを、私も自分のコントローラに適切なPersonオブジェクトを取得するには、別の2つのクエリを実行する必要があります。
def show
@average = Person.includes(:review).where(id: params[:id]).average_grade
@person = Person.includes(:review).find(params[:id])
end
がどのように私はこれらのクエリのすべてを避けることができますか?
を見つけることができるありがとうございました方法は、自己を必要としない理由ところで!? – Bezzi
インスタンスがインスタンスを呼び出す場合、 'self'内部インスタンスメソッドを省略することができます。 – Ilya