2013-01-22 84 views
2
類別排序頁面

我試圖打印出來是liul一個s,這有一個給定的標籤(元數據集)Awestruct導航:通過

如果不熟悉Awestruct每個包含所有頁面,它類似於化身和網頁的元數據可以作爲page.property訪問,頁面在一個site對象,並可以遍歷與site.pages.each

我想什麼來實現的東西,看起來像這樣:

Category 
    Page 
    Page 
Category 
    Page 
    Page 

這是我到目前爲止,我只能打印頁面標題。

- site.pages.each do |page| 
      %li 
       %a{ :href => page.url}= page.title 

有沒有簡單的解決方案,我錯過了?

+0

你能傳遞到Haml的前重建結構? – alex

+0

不是沒有改變Awestruct,我寧願不必這樣做。我試圖在它的結構中工作,但也許我將不得不寫一個擴展來做到這一點。 – Zen

回答

2

如果我undersood你想要什麼,這樣的事情應該工作:

%ul 
    -site.pages.group_by(&:category).each do |category, pages| 
    %li 
     = category 
     %ul 
     -pages.each do |page| 
      %li 
      %a{href: page.url}= page.title 

這使用group_by創建的鍵的類別屬性頁陣列的哈希值,併產生所有的嵌套列表在每一個頁面。

這將包括所有,包括但類別THOE,所以你可能要與reject第一過濾網頁數組:

-site.pages.reject{|p| p.category.nil?}.group_by(&:category).each do |category, pages| 
    ... 
+0

非常感謝@matt,這正是我所需要的。 – Zen