2013-04-08 2 views
1

После взглянуть на эти две ссылки, с помощью YAML с Middleman стало намного более ясным: Middleman Docs(Local Data), parsing and composing YAMLДоступ многослойного YAML и посредническая

Вопрос, который я бегу в теперь доступ несколько уровней контента.

YAML (живет в данных/проектов)

- quote: This is a quote 
    attribution: Kate Something 
    extras: 
     - extra one 
     - extra two 
     - extra three 

- quote: Blah blah 
    attribution: Donna Doe 
    extras: 
     - another extra 
     - another extra 

.HTML.ERB

<% data.projects.each do |f| %> 
    <div><%= f["quote"] %> <%= f["attribution"] %> <%= f["extras"] %></div> 
<% end %> 

выше работает плавно посредническая, однако, как я могу получить доступ к данным находящиеся под «дополнительные услуги: "и выплюнуть их в списке?

Другими словами, это то, что компилируется в сборке:

<div>This is a quote Kate Something extra oneextra twoextra three</div> 

Это результат, который должен быть достигнут:

<div>This is a quote Kate Something 
    <ul> 
    <li>extra one</li> 
    <li>extra two</li> 
    <li>extra three</li> 
    </ul> 
</div> 

Заранее спасибо за то, посмотрите на это вопросы. Пожалуйста, дайте мне знать, если вам нужно разъяснение по любому из вышеперечисленных вопросов, и я попытаюсь объяснить дальше.

ответ

4

f["extras"] это просто еще один массив, так что вы можете перемещаться по нему так же, как вы итерацию над data.projects:

<% data.projects.each do |f| %> 
    <div><%= f["quote"] %> <%= f["attribution"] %> 
     <ul> 
     <% f["extras"].each do |extra| %> <%# inner loop here %> 
      <li><%= extra %></li> 
     <% end %> 
     </ul> 
    </div> 
<% end %> 
+1

Спасибо вам Мэтта! (Пробовал что-то подобное, и понял, что я использовал <% = 'вместо' <% '). Новое к этому - очень ценю это! –