2010-09-14 27 views
3

我有一个嵌套的哈希:红宝石液态模板化嵌套哈希

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

如果我通过这ERB我可以这样做:

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

,并得到:

foo 

然而,这不与液体:(

如果我这样做:

Liquid::Template.parse(template).render(Hash["config" => myhash ]) 

我可以这样做:

{{ config }} 

,我从上面打印出来拿到pseudojson,但

{{ config[:KeyA] }} 

结果没有什么:(

液体是否支持呢?如果没有什么替代品在那里ERB那些支持这项工作,并且最好让我自定义更换标签(我不能因为IM上运行它包含<%标记一个ASP文件中使用ERB)

+0

在第一个代码块中,你的意思是':KeyA'而不是'KeyA'? – 2010-09-14 23:46:53

+0

啊斑点,和其他人。 *修正* – 2010-09-15 16:02:02

回答

1

使用点读一个很好的职位,

如:

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

输出:

=> "33" 
0

使用deep_stringify_keys!

液体似乎与符号的问题作为嵌套对象的键。