Ruby Liquid Templatingネストされたハッシュ
質問
私はネストされたハッシュを持っています:
{
:KeyA => {
:KeyB => "hello",
:KeyC => {
:KeyD => "foo",
:KeyE => "bar"
}
}
}
これをERBに渡すと、私はできます:
<%= config[:KeyA][:KeyC][:KeyD] %>
取得:
foo
ただし、これは液体では機能しません:(
私が行った場合:
Liquid::Template.parse(template).render(Hash["config" => myhash ])
できます:
{{ config }}
そして、私は上記から印刷された擬似ジソンを手に入れますが、
{{ config[:KeyA] }}
何も生じない:(
液体はこれをサポートしていますか?これをサポートするERBに代替品がある場合は、交換タグをカスタマイズすることができれば(ERBを使用できません。 <%
マークアップ)
解決 2
使用済み エルビス 最終的には
他のヒント
ドットを使用してください。
例えば:
Liquid::Template.parse("{{ a[0].b[2].c }}").render('a' => [{'b'=>[1,2,{'c'=>33}]}])
出力:
=> "33"
私は同じ問題を抱えていました(YAMLオブジェクトをハッシュにインポートします)、正常に動作することは不可能でした。最後に、エルビスを使用することにしました。液体を超えて生命があり、別のテンプレートエンニゲンもあります。で素晴らしい投稿を読むことができます http://www.hokstad.com/mini-reviews-of-19-ruby-template-engines.html
使用する deep_stringify_keys!
液体は、ネストされたオブジェクトのキーとしてシンボルに問題があるようです。
所属していません StackOverflow