我有一个控制器返回一个 json 结构,如下所示:
def show
# .......
o_json = deep_object_1_to_json(o)
render :json => o_json
end
private
def deep_object_1_to_json(o)
o.to_json(
:include => {....})
end
现在我需要扩展它以返回 2 个对象。然而,显而易见的解决方案给我带来了问题:
def show
# .......
o1_json = deep_object_1_to_json(o)
o2_json = deep_object_2_to_json(o)
render :json =>
{
:object_1 => o1_json,
:object_2 => o2_json
}
end
这将返回一个带有 2 个转义 json 数据字符串的 json 对象!
deep_object_2_to_json 函数已经有多层嵌套包含,所以我宁愿不必将它们重构为单个函数。有没有办法使它易于扩展以在将来添加更多对象而不会出现上述双重转义问题?
感谢您的任何指示。