2014-01-28 41 views
0

如何獲取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

我能得到的片段部分工作的代碼更改爲以下:

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

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

這遍歷每個樣式表,但我不能爲我的生命找出爲什麼它這樣做沒有for循環的液體。

任何想法爲什麼這是可行的?