ここに私が持っているクラスがあります:
Model Organization
has_many Students
Model Student
has_many Classes
belongs_to Organization
Model Class
a field named : price
belongs_to Student
scope :top_expensive_classes, joins(:students).order('price DESC')
ここで、上位 10 の高価なクラスをリストしたいと思います。
少なくとも私が抱えている最初の問題は、それにparams
基づいてフィルター処理する必要があることですが、モデル内の organization_id を見つける必要があると考えているが、モデルorganization_id
内にあるため、このようにコントローラーを記述します。Class
Student
@results = Class.top_expensive_classes.where(organization_id: params[:id]).limit(RESULT_SET_COUNT)
それで、これを修正する方法があるかどうか疑問に思っていましたか?どこかに新しい結合を導入する必要があると思いますか? しかし、それを理解できませんでした。