有沒有一種簡單的方法來顯示使用此插件時的整個嵌套集? 我想要做的是顯示一個無序列表的根節點與另一個無序列表裏面的每個孩子也包含孩子等等?Ruby on Rails - 真棒嵌套設置插件
任何意見讚賞。
謝謝。
有沒有一種簡單的方法來顯示使用此插件時的整個嵌套集? 我想要做的是顯示一個無序列表的根節點與另一個無序列表裏面的每個孩子也包含孩子等等?Ruby on Rails - 真棒嵌套設置插件
任何意見讚賞。
謝謝。
有幾種方法可以做到這一點。最簡單的就是從根開始,解析每個節點及其子節點。我做的第一件事是讓部分的節點標記:
_your_model.html.erb
<li>
<%= your_model.name %>
<% unless your_model.children.empty? %>
<ul>
<%= render your_model.children %>
</ul>
<% end %>
</li>
下一頁編輯您的視圖,以便第一根節點呈現:
<ul>
<% YourModel.roots.each do |node| %>
<%= render node %>
<% end %>
</ul>
您可以使用一個查詢得到整套:Category.order("lft ASC")
如果你有:depth
列,瞧!一個查詢全部,只需編寫您的視圖使用:深度。
使用your_model.children時,每次遇到數據庫時都會需要另一次命中,這是不可取的。
我創建了一個幫助程序,它可以幫助生成只有一個數據庫命中的嵌套ul和li標記。您可以修改這個幫手自己的需要:
我覺得你有幾個錯別字有哥們。我認爲這將是部分內部的<%= render'partial_name',:collection => your_model.children%>;並在最外面的ul中,你會做<%= render'partial_name',:collection => YourModel.roots%>並徹底擺脫每一個。 – jacortinas 2010-01-15 05:03:03
修復了your_model.children的內部渲染。 如果您使用的是較新版本的導軌,則只要您提供_the_name_of_your_model.html.erb,就不需要指定部分的名稱。 你也不一定要通過:收集。 Rails將確定它是單個實例還是一個對象數組。 – 2010-01-15 16:28:48