gpt4 book ai didi

ruby-on-rails-3 - 如何从祖先生成json树

转载 作者:行者123 更新时间:2023-12-04 03:33:34 25 4
gpt4 key购买 nike

我用祖先树成目标树。我想使用json将那棵树的内容发送到浏览器。

我的 Controller 是这样的:

@goals = Goal.arrange
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @goals }
format.json { render :json => @goals}
end

当我打开json文件时,得到以下输出:
{"#<Goal:0x7f8664332088>":{"#<Goal:0x7f86643313b8>":{"#<Goal:0x7f8664331048>":{"#<Goal:0x7f8664330c10>":{}},"#<Goal:0x7f8664330e68>":{}},"#<Goal:0x7f86643311b0>":{}},"#<Goal:0x7f8664331f70>":{},"#<Goal:0x7f8664331d18>":{},"#<Goal:0x7f8664331bd8>":{},"#<Goal:0x7f8664331a20>":{},"#<Goal:0x7f86643318e0>":{},"#<Goal:0x7f8664331750>":{},"#<Goal:0x7f8664331548>":{"#<Goal:0x7f8664330aa8>":{}}}

如何在json文件中呈现目标对象的内容?

我已经试过了:
@goals.map! {|goal| {:id => goal.id.to_s}

但这不起作用,因为@goals是有序哈希。

最佳答案

我在https://github.com/stefankroes/ancestry/issues/82上从tejo用户那里得到了一些帮助。

解决方案是将此方法放入目标模型:

def self.json_tree(nodes)
nodes.map do |node, sub_nodes|
{:name => node.name, :id => node.id, :children => Goal.json_tree(sub_nodes).compact}
end
end

然后使 Controller 看起来像这样:
@goals = Goal.arrange
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @goals }
format.json { render :json => Goal.json_tree(@goals)}
end

关于ruby-on-rails-3 - 如何从祖先生成json树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9944005/

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