问题标签 [ancestry]

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 回答
95 浏览

ruby-on-rails - 带有 Ancestry Gem 的 Message_controller

为新手问题道歉,但是,我在消息控制器中收到以下错误,引用 message#new 操作:

ActiveRecord::RecordNotFound(找不到没有 ID 的用户):app/controllers/messages_controller.rb:18:in `new'

我正在尝试将祖先 gem 合并到我的 messages_controller 中,特别是当我尝试回复在用户收件箱 (index.html.erb) 中收到的消息时。我知道目前没有通过身份证,但是有人遇到过类似的问题吗?下面的代码:

show.html.erb(视图)

在 2014-09-27 15:41:18 -0400 开始 GET "/messages/new?parent_id=19" for 127.0.0.1 由 MessagesController#new 作为 HTML 参数处理:{"parent_id"=>"19"} 消息加载(0.1ms) SELECT "messages".* FROM "messages" WHERE "messages"."id" = ? LIMIT 1 [["id", 19]] Completed 404 Not Found in 11ms

ActiveRecord::RecordNotFound(找不到没有 ID 的用户):app/controllers/messages_controller.rb:18:in `new'

渲染 /Users/sikendersingh/.rvm/gems/ruby-2.1.2/gems/actionpack-4.1.4/lib/action_dispatch/middleware/templates/rescues/_source.erb (0.5ms) 渲染 /Users/sikendersingh/.rvm /gems/ruby-2.1.2/gems/actionpack-4.1.4/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.0ms) 渲染/Users/sikendersingh/.rvm/gems/ruby-2.1 .2/gems/actionpack-4.1.4/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.1ms) 渲染/Users/sikendersingh/.rvm/gems/ruby-2.1.2/gems/actionpack -4.1.4/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb 在救援/布局中(13.8 毫秒)

0 投票
1 回答
598 浏览

ruby-on-rails - Rails Ancestry gem:保存节点时确保父节点存在

我今天第一次尝试将 Ancestry gem作为内容管理系统的一部分,并希望能够创建节点并将它们手动连接到树中。换句话说,上下文并不规定任何新节点的父节点是什么,这与每个人都阅读过的许多线程讨论示例不同。

目前,当我尝试保存(创建或更新)具有不存在的 parent_id(“4”)的节点时,我收到错误:

我希望将引用不存在的父母的任何节点分配为没有父母。我怎么做?

这是trees_controller.rb的相关部分:

谢谢

0 投票
0 回答
771 浏览

json - Rails 4:尝试将 Ancestry 与 jstree 一起使用

我是 Rails 新手,并试图在浏览器中使用 Ancestry gem 中的 JSON 填充 jstree(请参阅https://github.com/stefankroes/ancestry)。JSON是中间人。我被卡住的地方是翻译 Ancestry 生成的 JSON(来自我的 Tree 模型):

这给了我很好的 JSON 如下(仅片段,为无意义的值道歉):

但是 jstree 插件需要 JSON 的特定格式,如下所示(来自http://www.jstree.com/docs/json/):

虽然源层次结构是完美的,但我需要将原始中的属性“名称”替换为输出中的“文本”,以及其他一些更改。

在我的脑海里,我觉得应该有一些优雅的东西(比如用于 XML 的 XSLT)将 JSON#1 转换为 JSON#2,但我找不到任何这样做的例子。

0 投票
1 回答
217 浏览

ruby-on-rails - Rails祖先协会

我有一个食谱应用程序,其中每个食谱都与许多成分相关联,并且使用祖先宝石组织成分。

因此,例如,“酱油”将是一种成分,而“龟甲万”将是“酱油”的子代。一个食谱可能需要“酱油”,或者专门叫出“龟甲万”的名字。

我希望能够按祖先搜索食谱,所以如果我搜索“酱油”,它也会找到孩子“龟甲万”的食谱。我怎样才能用 Rails 魔法做到这一点?

0 投票
1 回答
523 浏览

ruby-on-rails - rails 4:祖先不能正常工作?

尝试对一个对象执行 root_id 时遇到问题。类看起来像:

该数据库表看起来:

当我做:

我正进入(状态:4

当我输入:

我正进入(状态:[4, 5]

puts @p.name给我Child 3-1(这是正确的)

那么,问题出在哪里?我不应该进入第一种情况1和第二种情况[1, 2, 4, 5]吗?

0 投票
1 回答
1017 浏览

ruby-on-rails - rails - 如何使用祖先制作嵌套路线

我有一个模型:

我正在使用ancestrygem 来创建页面和子页面树,即页面可以有多个子页面,子页面也可以有多个子页面,以此类推到无穷大。

但我的问题是我不能做某事/page-1/page-1-2/page-1-2-1。所有子页面都有一个 URL 是:/page-1-2/page-1-3-1

我的路线.rb:

如何制作嵌套网址?

谢谢!

0 投票
3 回答
52 浏览

ruby-on-rails - 如何在递归调用期间获取当前索引

我使用 gemancestry来创建评论。

现在,我可以列出所有评论。

但我想将序列号推送到每条评论。

例如,如果有 3 条评论,则第一个评论标注 1,下一条标注标注 2,..

我不知道该怎么做?

显示.html.haml

帮手

each_with_index 不适用于递归

如果我有 4 条评论,我想为每条评论显示 0,1,2,3

但是 each_with_index 不能成功,因为它是一个递归调用。

注释

0 投票
0 回答
206 浏览

ruby-on-rails - 如何找到祖先节点的所有亲属?

我正在使用祖先 gem,我想要做的总是检测到当前帖子的所有相关帖子。

所以我的Post has_ancestry.

related posts我看来,我有这个:

虽然这种方法很好,但它只检查一个用例(即,如果这篇文章有一个孩子)。我想要发生的事情是当这个人点击孩子时,在那个显示页面上它也应该将此帖子显示为相关帖子。

实际上它将是父母,但我不想做if post.has_parents?, then if post.has_children?,if post.has_siblings?等。

理想情况下,我只想检测任何亲属,如果有亲属,我想遍历它们并以同质的方式显示它们。

我怎么做?

0 投票
1 回答
431 浏览

ruby-on-rails-4 - Rails 4 - 所有嵌套的多态注释都显示在每个页面上,而不是单个页面上

我正在学习 Rails 并尝试创建一个带有嵌套多态注释的站点。

我一直在关注本教程http://www.tweetegy.com/2013/04/create-nested-comments-in-rails-using-ancestry-gem/以及一些 RailsCasts(262-trees-with-ancestry 和154-多态关联)。

我已经成功地创建了嵌套的多态评论(当我检查 rails 控制台的每个评论时)。但是,我遇到的问题是输出评论。它们都显示在每个资源的显示页面上,而不是相关的显示页面上。换句话说,所有评论都显示在/videos/1 和videos/2 和课程/1 和课程/3 上(每个页面上都显示相同的评论)。

我怀疑我的问题出在 comments_helper.rb 或 /lib/commentable.rb 文件中,但是我没有运气调试问题。

路线

配置/路由.rb

控制器

应用程序/控制器/comments_controller.rb

应用程序/控制器/lessons_controller.rb

应用程序/控制器/videos_controller.rb

楷模

应用程序/模型/comment.rb

应用程序/模型/课程.rb

应用程序/模型/video.rb

应用程序/模型/user.rb

帮手

应用程序/帮助者/comments_helper.rb

/lib/commentable.rb

架构

意见

课程与观点 show.html.erb

app/views/comments/_form.html.erb

app/views/comments/_comment.html.erb

任何反馈或想法将不胜感激。谢谢 ;)

0 投票
2 回答
1525 浏览

ruby-on-rails - 如何轻松检索祖先树的总深度?

Ancestry 有很多很棒的作用域和方法,包括node.depth(它返回一个深度级别——即根节点为 0,子节点为 1,等等)。

它还具有一些允许您按深度遍历树的范围,例如node.subtree(:to_depth => 2).

但我没有看到任何表明如何计算/检索整个树的总深度的东西 - 从根到最后一个节点。

我唯一能想到的就是total_depth_cache在我的模型上创建一个列,当添加一个新的孩子时,它会增加它。但是然后我必须编写逻辑来管理它(即,每当删除所有子级时,它都会递减 - 如果只有 1 级,但如果删除了具有 3 级子级的子级,则必须更新深度因此)。这很快就会变得非常复杂。

有没有更简单的方法来做到这一点?