如何为祖先树视图呈现嵌套的ul列表

Ach*_*ius 2 ruby-on-rails-3 content-tag ancestry

我想使用content_tag呈现下面显示的结构,其中集合是祖先对象.

  <ul>
    <li>
       <a>Fruits</a>
     <ul>
       <li>
         <a>Apple</a>
        </li>
        <li>
            <a>Orange</a>
        </li>
      </ul>
     </li>
     <li>
        <a>Colours</a>
     </li>
   </ul>
Run Code Online (Sandbox Code Playgroud)

小智 6

我相信这是答案,社区,请编辑和调整这篇文章,如果它是错的.

创建这样的帮助方法

def nested_groups(groups)
   content_tag(:ul) do
      groups.map do |group, sub_groups|
         content_tag(:li, group.name +  nested_groups(sub_groups))
      end.join.html_safe
   end  
end
Run Code Online (Sandbox Code Playgroud)

然后,将祖先对象传递给视图中的方法:

<%= nested_groups(@groups.arrange) %>
Run Code Online (Sandbox Code Playgroud)

它将以正确的方式呈现ul列表.