我有一个嵌套哈希:
{
:KeyA => {
:KeyB => "hello",
:KeyC => {
:KeyD => "foo",
:KeyE => "bar"
}
}
}
如果我将其传递给ERB,我可以这样做:
<%= config[:KeyA][:KeyC][:KeyD] %>
并获得:
foo
然而,这对Liquid不起作用:(
如果我这样做:
Liquid::Template.parse(template).render(Hash["config" => myhash ])
我能做到:
{{ config }}
我从上面打印出伪uzson,但是
{{ config[:KeyA] }}
没有任何结果:(
Liquid支持吗?如果没有ERB支持这个的替代方案,并且最好允许我自定义替换标签(我不能使用ERB,因为我在包含<%
标记的ASP文件上运行它
答案 0 :(得分:1)
使用点,
e.g:
Liquid::Template.parse("{{ a[0].b[2].c }}").render('a' => [{'b'=>[1,2,{'c'=>33}]}])
输出:
=> "33"
答案 1 :(得分:0)
最后使用erubis
答案 2 :(得分:0)
我遇到了同样的问题(将yaml对象导入哈希)并且无法正常工作。最后我决定使用erubis。除了Liquid之外还有其他生活模板。您可以在http://www.hokstad.com/mini-reviews-of-19-ruby-template-engines.html
阅读优秀的帖子答案 3 :(得分:0)
使用deep_stringify_keys!
Liquid似乎有符号作为嵌套对象的键的问题。