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

条件付きのブロックに直接アクセスする方法を実際に見つけることはできませんでしたが、回避策を使用して、次のコードでクラスにメソッドを追加しました

def b
  @blocks
end

そして、このコードを使用して

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

あなたが探しているリストを見つけることができました

于 2012-08-13T23:09:07.183 に答える