It might seem nice and tidy to do this: # 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 The templates are DRY and things are organized. But tucking the call to cache! into the _item partial is a performa