如何在Liquid模板片段中获取块以在Rails中呈现?目前,我能够呈现纯文本片段,例如布局可能是:
<!DOCTYPE html>
<html>
<head>
{% include 'stylesheets' %}
</head>
<body>
</body>
</html>
如果_stylesheets.liquid
是纯文本,这样可以正常工作。但是,如果我做一些稍微复杂的事情,例如:
<!-- _stylesheets.liquid -->
{% for stylesheet in stylesheets %}
{{ stylesheet.file_url | stylesheet_tag }}
{% endfor %}
这将不提供任何内容。在布局中放置确切的代码时,它会呈现预期的结果:
<!-- This Works -->
<!DOCTYPE html>
<html>
<head>
{% for stylesheet in stylesheets %}
{{ stylesheet.file_url | stylesheet_tag }}
{% endfor %}
</head>
<body>
</body>
</html>
以下是我在轨道视图中渲染液体的方式:
<%= Liquid::Template.parse(@theme.layout)
.render('stylesheets' => @theme.stylesheets)
.html_safe
%>
答案 0 :(得分:0)
我可以通过将代码更改为以下内容来使代码段部分工作:
<!-- Layout -->
<head>
{% include 'stylesheets' %}
</head>
<!-- Partial: _stylesheets.liquid -->
{{ stylesheets.file_url | stylesheet_tag }}
这遍历每个样式表,但我不能为我的生活找出为什么它没有流动的循环。
为什么会这样有效?