问题标签 [acts-as-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
769 浏览

ruby-on-rails - 为使用acts_as_tree的资源构建嵌套路由

你知道如何动态生成路由,例如:

我问这个问题是因为我有一个Folder充当树的模型(它有一个parent_id字段),并且它的to_param方法name通过parent_id. 所以,每个:parent_id事件:id都是name. 这是一个路径示例(带有 4 个子文件夹):

...其中第一个:parent_id(根)是“home”,而 the:id是“foobar”。

路线的另一个示例可能是(带有 1 个子文件夹):

...在哪里,如您所见,params[:parent_id] == 'home'params[:id] == 'music'

有没有一种干净的方法来编写一个漂亮的 Rails 3 路线来处理那些可能的嵌套路线?谢谢!!

0 投票
1 回答
357 浏览

ruby-on-rails - 在 Rails 3 中充当树

我在rails 3中遇到acts_as_tree_on_steroids的问题。是否有任何插件可以在rails 3中起到与树相同的作用

app/controllers/question_attributes_controller.rb:9:in `index'

渲染 /usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.8ms) 渲染 /usr/local/lib/ruby /gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (6.5ms) 渲染/usr/local/lib/ruby/gems/1.9.1/gems/ actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb 在救援/布局中 a.descendants

0 投票
0 回答
227 浏览

ruby-on-rails - RoR & ACTS_AS_Tree & 显示来自数据库的显示页面与显示内容

全部,

在工作中使用 RoR 应用程序。最后得到了作为树使用数据库连接的行为(railscast.com 第 162 集)。尝试从在数据库中显示内容转变为重定向到 page.content 数据库条目的内容——有什么想法吗?我试过用redirect_to简单地替换显示操作,没有骰子。到处搜索-没时间-帮助..

我的流程如下:

- 显示子菜单,没问题 - 显示面包屑,没问题 - 显示页面名称,没问题(设想一旦重定向工作就删除它) - 显示 page.content 的内容:<%= simple_format @page.content %> 没问题

问题是我想重定向到 @page.content 的内容而不显示它。或者我可以切换到不同的控制器操作,但我的想法是我需要能够使用导航菜单移动到不同的页面(已经存在)而不是只显示内容。想法?

谢谢,亚当

0 投票
1 回答
523 浏览

ruby-on-rails - 缓存动态 Acts_as_tree 类别列表

我有一个使用acts_as_tree 的类别模型

当我显示我的类别树时,我使用递归,每次都会生成几乎相同的部分(除了一些复选框被选中或不选中),需要大量的数据库调用。

我想缓存它,但此刻我唯一能想到的是将 Category.all 转储到一个新的非 ActiveRecord 数据结构中以减少调用次数。有没有更好的办法?

index.html.erb

_category_checkboxes.html.erb

_category_checkboxes_children.html.erb

0 投票
2 回答
577 浏览

ruby-on-rails - act_as_tree 和 has_many :通过不能很好地协同工作

我有以下内容:

编辑#3 - 种子数据样本 例如,如何播种(希望同时获得 mi_1 和 mi_2)

结束编辑#3

问题是我无法执行以下操作来返回所有 menu_items:

对于 has_many :through 在菜单中。这将只获得顶层的菜单项,而不是更深层次的菜单项。我尝试将 menu_id 添加到 menu_headers 但这迫使我放入 commented_out 行,这让我回到只获取顶级标题。有没有办法说让我获得 menu_header 的所有更深层次,以便上述工作?

是否有解决方法或其他方法?我几乎坚持使用acts_as_tree,所以使用awesome_nested_set 之类的东西并不是真正可行的。

谢谢

编辑 - 下面的评论中有几个问题;我凌晨四点写的

编辑#2
我可以通过这个得到所有的孩子:

我希望能够调用 all_children 并在主菜单项上获取 menu_items。也许将上述内容与对主菜单项的调用集成,然后在菜单项有更新时将缓存副本存储在菜单表中。

将研究 Ancestry,但由于其他代码依赖于此而犹豫是否要转移到另一个 gem。如果可以快速完成,可能没问题,但这是一个相当复杂的对象,有许多其他部分,acts_as_tree 相当简单。

编辑 #4 - 这是示例数据:

谢谢

0 投票
1 回答
5410 浏览

ruby-on-rails - 用于树菜单的acts_as_tree vs 祖先宝石

我想在我正在开发的 Rails 应用程序中实现树形菜单(树形菜单的简单示例)。我不确定是使用acts_as_tree 还是Ancestry。似乎使用acts_as_tree 实现一个简单的树形菜单会更容易,但是,Ancestry 更受欢迎并且定期维护。有人对此有任何想法吗?

0 投票
2 回答
338 浏览

ruby-on-rails - act_as_tree 并通过子标题将值传播到项目

我有一个复杂的模型,并希望在我对 Rails 的有限了解的情况下获得完整的功能。

我有一个部分、一个标题(使用acts_as_tree)和一个项目。

我使用 json 来引入数据集。这非常有效。我希望能够为整组数据(例如“is_shippable”)引入属性。我希望能够在树中的任何位置指定 is_shippable 值并将其设置为 true。另外,我希望能够在标题或项目级别覆盖以将其设置为 false。

我已经决定将 is_shippable 作为部分、标题和项目的属性并尝试使用 before_create 回调来确定它是否应该是 is_shippable 是有意义的。

例如:

示例 json:

}

在 header.rb 中

在 item.rb 中

有没有比我更好的方法来做到这一点?如果在层次结构中将 is_shippable 设置为 true,我将如何执行 if 语句检查 is_shippable 是否设置为 false?

编辑 - 还有更多 is_shippable 功能,如 is_fragile、is_custom_size 等...

0 投票
4 回答
488 浏览

ruby-on-rails - 带有嵌套资源的简单 Acts_as_tree

使用 Rails 3.1.1 和 gemacts_as_tree。我已经用谷歌搜索了这个问题并在 SO 上检查了类似的问题(答案太旧或不相关)。

我有一个名为 article 的模型,其路线今天看起来像:

我有三篇文章:“书”、“第 1 章”和“第 2 章”。book 是第 1 章和第 2 章的父级。

今天,我每篇文章的路径是:host.com/book、host.com/chapter1 和 host.com/chapter2。我希望 url 路径是 host.com/book/chapter1 和 host.com/book/chapter2 ,即嵌套路由。

如何以干净简单的方式创建它?

基本上,我想要一个路径,它将是 host.com/:parent_id/:parent_id/:id 和 N 个 :parent_id。几乎是如何路由 Wordpress 文章的。

我不相信路由 globber 是解决方案,但我可能错了。host.com/:id 和 host.com/foo/bar/:id 似乎给出了相同的结果,这将导致重复的内容。

0 投票
1 回答
2586 浏览

ruby-on-rails - act_as_tree 和 rails 3.2.3,不兼容?

我正在使用 Rails 3.2.3 和acts_as_tree 1.1.0。我一直在用早期版本的 Rails 3(例如 3.1.1)将acts_as_tree 用于少数不同的项目,没有任何问题,但对于这个版本它根本不起作用。如果是因为 3.2.3 或我使用的其他东西,我无法确认。

这是我尝试过的,但无济于事:-在几个不同的控制器上使用acts_as_tree-仅使用acts_as_tree(没有顺序语句)-运行捆绑安装和捆绑更新-仔细检查parent_id是否存在并且是整数

首先,当我尝试这个时,我第一次尝试:

重新加载页面(而不做任何其他事情)导致:

然后重新启动服务器导致启动失败(应用程序将崩溃并且无法启动)并出现以下错误:

这让我猜测 Rails 3.2.3 和acts_as_tree 存在兼容性问题。我不知道如何验证这一点。

我有什么选择?我不一定需要使用 Rails 3.2.3,但如果我降级到 3.1.1。(我试过了)我遇到了其他看起来更糟的问题(“文件设置”似乎不一样)。

那么,我有哪些选择?你是否也有过这样的经历?act_as_tree 有问题,对吧?

0 投票
1 回答
175 浏览

ruby-on-rails - 在 Rails 控制器中实现 erb 代码?

我想在使用acts_as_tree时将我的模型渲染为json并包含它的节点。我找到了这篇文章,它有很大帮助:acts_as_tree 和 to_json 或 from_json

我唯一的问题是如何在我的控制器中实现它。我想在我的控制器中返回 json。

到目前为止,我有这个:

但在返回@categories 之前,我想在它上面调用它:<%= @categories.select { |c| c.root? && !c.leaf? }.collect { |c| category_to_spacetree_json(c) }.to_json.html_safe %>但看起来这只能从视图中调用。

如何从我的控制器执行此操作?

谢谢!