1

考虑以下已解析的模板及其 root.nodelist 的循环:

text = '{% if true %}{{ "poland" | capitalize }}{% else %}{{ "portugal" | capitalize}}{% endif %}'
template = Liquid::Template.parse(text)
template.root.nodelist.each { |node| p node }

将仅打印:

Portugal 

(而不是波兰)

如何从模板中列出所有节点(包括 Liquid 变量、标签等​​)?尤其是 if/else 逻辑中的那些?

4

1 回答 1

0

我真的无法找到在某种条件下访问 Blocks 的直接方法,但我使用了一种解决方法,使用以下代码向 Class 添加了一个方法

def b
  @blocks
end

然后使用这段代码

template.root.nodelist[0].b.each { |a| p a.attachment[0].name }

我可以找到您要查找的列表

于 2012-08-13T23:09:07.183 回答