2010-09-14 2 views
3

у меня есть вложенная хэш:рубин Liquid шаблонирование вложенных хэш

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

если я передать это Еврорадио я могу сделать:

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

и получите:

foo 

Однако это не работает с жидкостью :(

Если да, то:

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

я могу сделать:

{{ config }} 

и я получаю pseudojson сверху распечатаны, но

{{ config[:KeyA] }} 

приводит ничего :(поддержать этот

ли жидкий? Если нет, какие альтернативы есть Еврорадио, которые поддерживают это, и предпочтительно позволяют мне настроить теги замены (я не могу использовать Еврорадио, потому что им запустить его на файл ASP, который содержит <% разметку)

+0

В первом блоке кода вы имеете в виду ': KeyA', а не' KeyA'? –

+0

ах хорошо пятнистый, и другие. *исправленный* –

ответ

0

У меня была та же проблема (импортируйте объект yaml в хэш), и было невозможно работать нормально. Наконец я решил использовать эрубы. Есть жизнь за пределами Жидкости, а также еще один шаблон enngines. Вы можете прочитать отличный пост на http://www.hokstad.com/mini-reviews-of-19-ruby-template-engines.html

1

использования точек,

например:

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

Выход:

=> "33" 
0

использование deep_stringify_keys!

Liquid, кажется, есть проблемы с символами как ключи для вложенных объектов.