2013-04-08 19 views
1

考慮看看這兩個環節,使用YAML與中間人之後已經成爲很多更加清晰: 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 
    <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

謝謝馬特! (嘗試過類似的東西,並意識到我使用了'<%='而不是'<%')。新的 - 真的很感激它! – 2013-04-13 18:16:35