将cache_digests与XML builder一起使用?

时间:2013-03-30 22:10:29

标签: ruby-on-rails xml caching ruby-on-rails-4

有没有办法在Rails 4(cache_digests)中利用XML的新缓存策略?

我想我可以使用xml.erb视图,但我更喜欢xml.builder视图的简洁性。

有没有办法以这种方式使用cache_digests?

1 个答案:

答案 0 :(得分:7)

要在XML Builder文件中使用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