问题描述
我正在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')
使用标准帮助程序,在两种情况下都应该可以正常工作。