質問

私はネストされたハッシュを持っています:

{
  :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!

液体は、ネストされたオブジェクトのキーとしてシンボルに問題があるようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top