我有许多相关的模型:
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)
现在,我需要找到所有公司并按订单从高到低对它们进行排序。由于我有 groups_orders_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"
)
任何帮助或推动正确的方向表示赞赏!谢谢。