考虑以下解析模板及其root.nodelist的循环:
text = '{% if true %}{{ "poland" | capitalize }}{% else %}{{ "portugal" | capitalize}}{% endif %}'
template = Liquid::Template.parse(text)
template.root.nodelist.each { |node| p node }
仅打印:
Portugal
(而不是波兰)
如何从模板列出所有节点(包括液体变量,标签等)?特别是if / else逻辑中的那些?
答案 0 :(得分:0)
我无法在条件中找到直接访问Blocks的方法,但我使用了一种解决方法,使用以下代码向Class添加方法
def b
@blocks
end
然后使用此代码
template.root.nodelist[0].b.each { |a| p a.attachment[0].name }
我可以找到您要找的列表