Railsアプリには、3つのモデル(Posting、Shop :: Items、Directory :: Items)があります。すべてのモデルには、他のモデル(ユーザー、カテゴリ、都市など)との関係があります。私がメインページに表示しなければならないこのすべての情報。アイテムのページ化されたリストのように見えるはずです。DBにpostgresを使用しています。
このようなコードをコントローラーに記述できます。
@postings = Posting.includes(:category, :subcategory, :user, :city).all
@directory_items = Directory::Item.includes(:category, :user, :city).all
@shop_items = Shop::Item.includes(:category, :user, :city, :phone).all
この結果を並べ替えます。しかし、それは最善の方法ではありません。
2番目の解決策は、ActiveRecordを省略したカスタムクエリを作成することです。しかし、このクエリは非常に大きく、サポートするのは難しいでしょう(そこには多くの結合があります)
DBクエリの量が最も少ない場合の最良の解決策は何ですか?(これはメインページなので、非常に高速に動作するはずです)。