rails ancestry group table view

160 Views Asked by At

for example i have active record like this. below

[{id: 1, ancestry: nil, name: "Person 1"},
    {id: 2, ancestry: nil, name: "Person 2"},
    {id: 3, ancestry: nil, name: "Person 3"},
    {id: 4, ancestry: 1, name: "Child 1"},
    {id: 5, ancestry: 1, name: "Child 2"},
    {id: 6, ancestry: 1, name: "Child 3"},
    {id: 7, ancestry: 2, name: "Child 4"},
    {id: 8, ancestry: 2, name: "Child 5"},
    {id: 9, ancestry: 2, name: "Child 6"},
    {id: 10, ancestry: 3, name: "Child 7"},
    {id: 11, ancestry: 3, name: "Child 8"},
    {id: 12, ancestry: 3, name: "Child 9"}]

I'm using ancestry in that Family model

how to achieve this table view in my HTML need to look like this

Parent Name Child Name   Action

Person 1                edit-btn delete-btn
            Child 1     edit-btn delete-btn
            Child 2     edit-btn delete-btn
            Child 3     edit-btn delete-btn
Person 2                edit-btn delete-btn
            Child 4     edit-btn delete-btn
            Child 5     edit-btn delete-btn
            Child 6     edit-btn delete-btn
Person 3                edit-btn delete-btn
            Child 7     edit-btn delete-btn
            Child 8     edit-btn delete-btn
            Child 9     edit-btn delete-btn
1

There are 1 best solutions below

2
Martin Moen Wulffeld On

Something like:

<% Person.roots.each do |root| %>
  < render the Person row >
  <% root.children.each do |child| %>
    < render the Child row >
  <% end %>
<% end %>

I assume here you're using the ancestry gem.