関連するモデルがいくつかあります。
Company has_many :clients (which belongs_to :company)
Client has_many :groups (which belongs_to :client)
Group has_many :orders (which belongs_to :group, :counter_cache => true)
今、私はすべての会社を見つけて、それらを注文順に並べ替える必要があります。私はgroupsorders_count列を持っているので、groups.orders_countで注文できると確信しています。次に、会社を繰り返し処理して、注文の合計を並べて表示する必要があります。
私はこれを見つけるために考え出そうとしてきました。私はMySQLデータベースを持っています、それがfind_by_sqlか何かに帰着するなら。
companies = Company.find(
:all,
:include => { :clients => :groups },
:select => "companies.*, groups.orders_count",
:group => "companies.id",
:order => "groups.orders_count"
)
どんな助けや正しい方向へのプッシュもありがたいです!ありがとう。