例として:
あcompany has_many employees
をemployee has_many tasks
すべてのタスクを降順で取得したい。理想的には、次のようなことをしたいと思いCompany.all.employees.tasks.order('created_at desc')
ます。残念ながら、 を通過する頃にはemployees
、ActiveRecord オブジェクトの配列を取得しています。私はしばらくこの問題に直面しており、 and を使用しているだけですが、降順で並べ替えると、必要以上のオーバーヘッドが発生しますmap
。collect
これは SQL クエリで実行できるので、ActiveRecord でも実行できると確信していますが、私の調査ではあまり役に立ちませんでした。
編集: ソリューションは、任意の数のモデルで機能するはずです。たとえば、atask has_many items
とitem has_many sub_items
無限大の場合。