Ancestry - 自定义来自arrange_serializable方法

时间:2016-09-17 18:29:45

标签: ruby-on-rails ancestry

我正在使用类别模型的祖先gem,当我调用方法arrange_serializable时,我希望有一个cusmized输出,并在相关模型中添加方法的输出。

而不是: {id:1,名称:“XYZ”,儿童:{id:11,姓名:“XYZ”,儿童......}}

我需要: {id:1,custom_method:“ABC”,children:{id:11,custom_method:“ABC”,name:“XYZ”,children ......}}

我花了好几天才弄明白,但没有运气。

任何提示如何实现这一目标?

谢谢你,米罗

2 个答案:

答案 0 :(得分:2)

您需要定义自定义的arrange_serializable方法。你可以做这样的事情

TreeNode.arrange_serializable do |parent, children|
  { id: parent.id, 
    custom_method: "ABC",
    children: children }
end

答案 1 :(得分:0)

您可以创建自己的custom_arrange方法。这适用于你的例子。

def custom_arrange nodes = nil
    nodes = Post.arrange if nodes.nil?
    nodes.map do |parent, children|
       {
          id: parent.id,
          custom_method: "ABC",
          children: custom_arrange(children)
        }
    end
end