Rails缓存内插部分名称的摘要错误

时间:2014-12-03 20:58:58

标签: ruby-on-rails caching

我有一个应用程序,通过使用缓存,我大大提高了响应时间。

我是俄罗斯娃娃缓存片段,一个片段渲染了几个(嵌套)部分片段。似乎所有东西都应该像它应该的那样工作,但是我所包含的部分部分是由插值字符串构成的。对于那些部分,我在错误日志中收到缓存错误:

  

无法找到消化模板:路径/到/#{my.calculated.partial.name}

我已经花了一些时间在谷歌上,我发现的唯一一件事就是很多人都希望关闭摘要。所以我基本上有几个问题:

  1. 有没有办法解决这个问题? (即具有实际"评估的"部分名称)的缓存摘要?

    • 我可以想象这个问题的答案是" no",因为页面的缓存版本没有执行任何代码,因此,内插字符串不能
  2. 更一般:我为什么要启用或禁用缓存摘要?他们的目的是什么?

  3. 您如何建议我解决这些错误(如果没有解决1)?

  4. 更新

    根据要求,给我这个错误的视图示例是:

    -cache ['survey', @survey], expires_in: expire_period
      [...]
      -cache ['survey_questions', @survey]
        -@survey.questions.each do |q|
          =render "field_types/#{q.field_type.type.underscore}", question: q, f: f
    

    例如,当字段类型为'文本输入'时,它会呈现 field_types / _text_input.html.haml 。一切都很好。我将在日志中得到的错误是:

      

    _Could找不到消化模板: field_types / field_types /#{q.field_type.type.underscore} _

0 个答案:

没有答案