如何使用 Awesome_nested_set 生成嵌套列表

发布于 2024-10-07 05:02:01 字数 766 浏览 5 评论 0原文

我在 Rails 项目中使用 Awesome_nested_set 插件。我正在尝试创建这样的嵌套无序列表,但我没有任何运气:

<ul>
    <li>Test 1</li>
    <li>
        Test 2
        <ul>
            <li>Test 2.1</li>
            <li>Test 2.2</li>
        </ul>
    </li>
    <li>
        Test 3
        <ul>
            <li>Test 3.1</li>
            <li>Test 3.2</li>
            <li>Test 3.3</li>
        </ul>       
    </li>       
</ul>

另外,我希望通过一个数据库查询来完成此操作。这里有一个类似的问题,有一个可接受的答案,但该解决方案对我不起作用。
如何渲染所有将嵌套集中的记录放入真实的 html 树中

I'm using the awesome_nested_set plugin in my Rails project. I'm trying to create nested unordered lists like this, but I'm not having any luck:

<ul>
    <li>Test 1</li>
    <li>
        Test 2
        <ul>
            <li>Test 2.1</li>
            <li>Test 2.2</li>
        </ul>
    </li>
    <li>
        Test 3
        <ul>
            <li>Test 3.1</li>
            <li>Test 3.2</li>
            <li>Test 3.3</li>
        </ul>       
    </li>       
</ul>

Also, I was hoping to do this with one db query. There's similar question here with an accepted answer, but the solution does not work for me.
How to render all records from a nested set into a real html tree

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青衫负雪 2024-10-14 05:02:01

使用部分渲染子项并使用子项方法启动它:

in: _tree.html.erb

<% content_tag :li, :id => dom_id(menu) do %>
  <span class="handle"><%= menu.title %></span>    
  <% content_tag :ul do %>
   <% for child in menu.children do %>
    <%= render :partial => "tree", :locals => {:menu => child }%>
   <% end %>
  <% end unless menu.leaf? %>
 <% end %>

in: show.html.erb

<%= render :partial => "tree", :locals => {:menu => @menu} %> 

将 @menu 替换为您的对象。

Use a partial to render the children and kick it off with children methods:

in: _tree.html.erb

<% content_tag :li, :id => dom_id(menu) do %>
  <span class="handle"><%= menu.title %></span>    
  <% content_tag :ul do %>
   <% for child in menu.children do %>
    <%= render :partial => "tree", :locals => {:menu => child }%>
   <% end %>
  <% end unless menu.leaf? %>
 <% end %>

in: show.html.erb

<%= render :partial => "tree", :locals => {:menu => @menu} %> 

Replace @menu with your object.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文