2013-03-30 5 views
5

XMLのRails 4(cache_digests)で新しいキャッシュ戦略を活用する方法はありますか?XMLビルダーでcache_digestsを使用しますか?

私はxml.erbビューを使用することができますが、私はそれらの簡潔さのためにxml.builderビューを優先します。

この方法でcache_digestsを使用する方法はありますか?

答えて

5

XMLビルダーファイルでfragment caching and Rails 4 cache_digestsを使用するには、cacheメソッドを使用します。これは他のテンプレートとまったく同じです。以下は、(簡略化された)ブログRSSフィードのロシア人形キャッシングの例です:

# 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 
+0

素晴らしい/非常に役立ちます。私の唯一の変更は、最初の 'cache'行を' feed.xml.builder'ファイルの**最初の**行に移動することでした。できるだけ多くの応答をキャッシュする必要があります。したがって、すべてのヘッダーとxml.channel情報もキャッシュに含めることができます。 –