模板部分/片段仅呈现纯文本

时间:2014-01-28 01:44:49

标签: ruby-on-rails ruby-on-rails-4 liquid

如何在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 
%>

1 个答案:

答案 0 :(得分:0)

我可以通过将代码更改为以下内容来使代码段部分工作:

 <!-- Layout -->
 <head>
    {% include 'stylesheets' %}
 </head>

<!-- Partial: _stylesheets.liquid -->
{{ stylesheets.file_url | stylesheet_tag }}

这遍历每个样式表,但我不能为我的生活找出为什么它没有流动的循环。

为什么会这样有效?