gpt4 book ai didi

ruby-on-rails - rails awesome nested set 显示所有猫、子猫和子子猫

转载 作者:太空宇宙 更新时间:2023-11-03 16:11:07 25 4
gpt4 key购买 nike

我看到了这篇文章

Ruby on Rails - Awesome nested set plugin

但我想知道如何在不使用节点的情况下做同样的事情?我也想知道这个节点在代码本身中到底做了什么。

在我的类别 View 文件夹中,我有 _category.html.erb 和一个 _full_categores_list.html.erb。

_category.html.erb 有如下代码,与上面的链接是sae 方式。

<li>
<%= category.name %>

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

_full_categories_list.html.erb 具有以下代码。

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

这段代码工作得很好。但是,假设我想创建这些文件的副本,所以我可能制作了一个 _half_categories_list.html.erb 而不是 _full_categories_list.html.erb ,它可能对代码做一些不同的事情。

如果我使用与上面在 _full_categories_list.html.erb 中使用的类似的代码,它将继续调用 _category.html.erb。

如何使用 _half_categories_list.html.erb 和类似 _half_category.html.erb 的文件而不是 _category.html.erb 来显示所有的猫、子猫和子子猫

half category 和 full category 只是名称,表示我在每个文件中做不同的事情。我希望这是有道理的。我想基本上复制上面链接中代码的功能,但使用 _half_category.html.erb 而不是 _category.html.erb,因为我试图在 _half_category.html.erb 文件中放置不同的功能。

最佳答案

首先:有一种使用 render:partial:collection 选项编写 _full_categories_list.html.erb 的更简单方法。

<ul>
<%= render :partial => :category, :collection => YourModel.roots %>
</ul>

这等同于您在上面编写的 _full_categories_list.html.erb

roots 是一个 named scopeawesome_nested_set 提供。您可以向模型添加更多作用域 - 例如名为 half_roots 的命名作用域(有关如何操作的信息,请参见链接)。

考虑到这一点,_half_categories_list.html.erb 可以这样写:

<ul>
<%= render :partial => :half_category, :collection => YourModel.half_roots %>
</ul>

然后您可以使用 _half_category.html.erb 以您需要的特殊方式呈现类别。

关于ruby-on-rails - rails awesome nested set 显示所有猫、子猫和子子猫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3410832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com