Per utilizzare fragment caching and Rails 4 cache_digests in file XML Builder, basta usare il metodo cache
, che funziona esattamente come in altri modelli. Ecco un esempio di cache russa di un blog (semplificato) RSS feed:
# feed.xml.builder
xml.instruct! :xml, version: "1.0"
xml.rss version: "2.0", 'xmlns:atom': 'http://www.w3.org/2005/Atom' do
xml.channel do
xml.title "My Blog"
cache "articles/feed-#{@articles.count}-#{@articles.maximum(:updated_at).try(:to_i)}" do
@articles.each do |article|
cache article do
xml.item do
xml.title article.title
xml.description article.body
end
end
end
end
end
end
Ottimo/molto utile. La mia unica modifica è stata spostare la prima riga 'cache' come la ** primissima ** riga del file' feed.xml.builder' - cioè. dovresti memorizzare il maggior numero possibile di risposte, quindi potresti anche includere tutte le informazioni di intestazione e xml.channel nella cache. –