次のような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
これは、エスケープされた json データの 2 つの文字列を持つ json オブジェクトを返します!
deep_object_2_to_json 関数には、ネストされたインクルードのレイヤーが既にいくつかあるため、これらを 1 つの関数にリファクタリングする必要はありません。上記の二重エスケープの問題なしに、将来さらにオブジェクトを追加するためにこれを簡単に拡張できるようにする方法はありますか?
ご指摘ありがとうございます。