Ruby液态模板嵌套哈希

3

我有一个嵌套的哈希:

{
  :KeyA => {
            :KeyB => "hello",
            :KeyC => {
                      :KeyD => "foo",
                      :KeyE => "bar"
                    }
          }
}

如果我将这个传递给ERB,我可以做到:

<%= config[:KeyA][:KeyC][:KeyD] %>

并获得:

foo

然而,这在 Liquid 中是不起作用的 :(
如果我这样做:
Liquid::Template.parse(template).render(Hash["config" => myhash ])

我可以做:

{{ config }}

我从上面获取了伪JSON并将其打印出来,但是

{{ config[:KeyA] }}

没有任何结果 :(

Liquid支持这个吗?如果不支持,有哪些替代方案可以支持此功能,并且最好允许我自定义替换标签(我不能使用ERB,因为我在运行包含<%标记的ASP文件)。


在第一个代码块中,您是不是指的 :KeyA 而不是 KeyA - Andrew Grimm
啊,很好发现,还有其他的。已更正 - Andrew Bullock
4个回答

1

使用点号。

e.g.:

Liquid::Template.parse("{{ a[0].b[2].c  }}").render('a' => [{'b'=>[1,2,{'c'=>33}]}])

输出:

 => "33"

0

使用deep_stringify_keys!

Liquid似乎在将符号用作嵌套对象的键时存在问题。


0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接