【问题标题】:use cache_digests with XML builder?将 cache_digests 与 XML 构建器一起使用?
【发布时间】:2013-03-30 22:10:29
【问题描述】:

有什么方法可以利用 Rails 4 (cache_digests) 中用于 XML 的新缓存策略?

我想我可以使用 xml.erb 视图,但我更喜欢 xml.builder 视图,因为它们简洁。

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

【问题讨论】:

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


    【解决方案1】:

    要在 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
    

    【讨论】:

    • 很棒/很有帮助。我唯一的改变是将第一行cache 移动到feed.xml.builder 文件的very first 行——即。你应该缓存尽可能多的响应,所以你也可以在缓存中包含所有的 header 和 xml.channel 信息。
    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 2013-04-08
    • 2020-10-24
    相关资源
    最近更新 更多