Pode parecer bom e organizado fazer isso:
# items/index.json.jbuilder
json.items @items do
json.partial! "item", item: item
end
# items/show.json.jbuilder
json.item do
json.partial! "item", item: @item
end
# items/_items.json.jbuilder
json.cache! item do
json(item, :id, :name, ...)
end
Os modelos são SECOS e as coisas são organizadas.
Mas diminuindo a chamada para o cache! no parcial _item é um impacto no desempenho. Considerar:
# items/index.json.jbuilder
json.items @items do
json.cache! item do
json.partial! "item", item: item
end
end
# items/show.json.jbuilder
json.item do
json.cache! item do
json.partial! "item", item: @item
end
end
# items/_items.json.jbuilder
json(item, :id, :name, ...)
Embora um pouco mais repetitiva, essa estrutura salva as chamadas parciais! assim que o cache estiver quente. Carregar um parcial não é gratuito e o tempo que leva para carregar um aumenta quando agregado em x itens por solicitação e y solicitações por minuto.