0

現在、次の構造の JSON ビュー (.json.erb) があります。

[
<% @master_entities.each do |master| %>
  {
   "attr1": <%= master.attr1 %>,
   "attr2": <%= master.attr2 %>,
   "attr3": <%= master.attr3 %>,
   "attr4": <%= master.attr4 %>,
   "details1": <%= render 'detail_view1', {master: master} %>,
   "details2": <%= render 'detail_view2', {master: master} %>
  },
<% end %>
]

詳細ビューには次の構造があります。

[
<% Detail_entity1.find_all_by_master_id(master.id).each do |detail1| %>
  {
   "attr1": <%= detail1.attr1 %>,
   "attr2": <%= detail1.attr2 %>,
   "attr3": <%= detail1.attr3 %>
  },
<% end %>
]

これにより、マスター エンティティごとに追加のクエリが発生します。

ビューで詳細モデルを照会しているという事実が好きではありません。

マスターと詳細の 1 つの堅実なクエリを実行できますが、最初は大量のメモリを消費するのではないかと心配し、次に、Ruby on Rails を使用してマスターのエントリをグループ化する方法を教えてください。そして、配列全体から master.id で詳細を抽出する方法は?

それとも、タスクを効率的に行う別の方法があるのでしょうか?

4

0 に答える 0