缓存的Ruby Haml块返回空

问题描述

我正在HAML代码中执行一些缓存,其中还包括逻辑:

- Rails.cache.fetch('unique_key') do
    some text
    - if false
        more text

初始渲染工作正常,但后续调用返回空白。 我怀疑结尾的if语句是原因。

有人解释为什么会这样吗?任何建议如何克服它?

一种效果理想的优雅解决方案是附加一些尾随的虚拟块:

- Rails.cache.fetch('unique_key') do
    some text
    - if false
        more text
    %div.blank

谢谢

解决方法

该块中最后一个求值的语句是if false。该语句的结果为nil。并且此值存储在缓存中。添加%div.blank时,存储在缓存中的结果将类似于some text\n%div.blank。我会为视图cache('key')使用标准帮助程序,在两种情况下都应该可以正常工作。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...