2010-01-13 11 views
5

C'è un modo semplice per visualizzare l'intero set nidificato quando si utilizza questo plugin? Quello che mi piacerebbe fare è visualizzare un elenco non ordinato di nodi radice con un'altra lista non ordinata all'interno di ogni bambino che contiene anche bambini e così via?Ruby on Rails - Plugin nested impressionante

Qualche consiglio apprezzato.

Grazie.

risposta

4

Ci sono alcuni modi per farlo. Il più semplice è iniziare semplicemente con le radici e analizzare ogni nodo ed i suoi figli. La prima cosa che farei è fare una parziale per un markup del nodo:

_your_model.html.erb

<li> 
    <%= your_model.name %> 

    <% unless your_model.children.empty? %> 
    <ul> 
     <%= render your_model.children %> 
    </ul> 
    <% end %> 
</li> 

Modifica accanto la visualizzazione in modo che i primi nodi principali sono rese:

<ul> 
    <% YourModel.roots.each do |node| %> 
    <%= render node %> 
    <% end %> 
</ul> 
+0

penso che hai avuto un paio di errori di battitura lì amico. Penso che sarebbe <% = render 'partial_name',: collection => your_model.children%> all'interno del partial; e nel più esterno ul, dovresti fare <% = render 'partial_name',: collection => YourModel.roots%> e eliminare completamente ciascuno di essi. – jacortinas

+0

Corretto il rendering interno su your_model.children. Se si utilizza una versione più recente di rotaie non è necessario specificare il nome del parziale se si presta _the_name_of_your_model.html.erb. Inoltre non è necessario passare in: raccolta. Rails determinerà se si tratta di una singola istanza o una matrice di oggetti. –

0

è possibile ottenere l'intera serie con una sola query: Category.order("lft ASC")

E se avete :depth colonna, voilà! Una domanda per tutto, basta scrivere la tua vista da usare: profondità.

+0

Non è necessario: colonna di profondità. Il plug set nidoso impressionante ha un metodo di livello. – xaph

+1

ogni chiamata del metodo di livello query db :( – Vlad

+0

L'utilizzo di ['each_with_level (objects)'] (https://github.com/collectiveidea/awesome_nested_set/commit/9fcaaff3d6b351b11c4b40dc1f3e37f33d0a8cbe) dovrebbe evitare più query. – fractious