目前我有以下结构的 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 %>
]
这会导致对每个主实体的额外查询。
我不喜欢我在视图中查询详细信息模型的事实。
我可以对 master 和 details 执行一个可靠的查询,但起初我担心它会消耗大量内存,其次 - 如何使用 Ruby on Rails 为 master 分组条目意味着?以及如何通过 master.id 从整个数组中提取详细信息?
或者可能有另一种有效地完成任务的方法?