2010-09-14 55 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!

液體似乎與符號的問題作爲嵌套對象的鍵。