現在、次の構造の 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 で詳細を抽出する方法は?
それとも、タスクを効率的に行う別の方法があるのでしょうか?